/*
 * $Id: switch.h,v 1.197.2.8 Broadcom SDK $
 * 
 * $Copyright: Copyright 2011 Broadcom Corporation.
 * This program is the proprietary software of Broadcom Corporation
 * and/or its licensors, and may only be used, duplicated, modified
 * or distributed pursuant to the terms and conditions of a separate,
 * written license agreement executed between you and Broadcom
 * (an "Authorized License").  Except as set forth in an Authorized
 * License, Broadcom grants no license (express or implied), right
 * to use, or waiver of any kind with respect to the Software, and
 * Broadcom expressly reserves all rights in and to the Software
 * and all intellectual property rights therein.  IF YOU HAVE
 * NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE
 * IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE
 * ALL USE OF THE SOFTWARE.  
 *  
 * Except as expressly set forth in the Authorized License,
 *  
 * 1.     This program, including its structure, sequence and organization,
 * constitutes the valuable trade secrets of Broadcom, and you shall use
 * all reasonable efforts to protect the confidentiality thereof,
 * and to use this information only in connection with your use of
 * Broadcom integrated circuit products.
 *  
 * 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS
 * PROVIDED "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
 * REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY,
 * OR OTHERWISE, WITH RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY
 * DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
 * NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
 * ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
 * CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING
 * OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
 * 
 * 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL
 * BROADCOM OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL,
 * INCIDENTAL, SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER
 * ARISING OUT OF OR IN ANY WAY RELATING TO YOUR USE OF OR INABILITY
 * TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF
 * THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR USD 1.00,
 * WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING
 * ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.$
 * 
 * DO NOT EDIT THIS FILE!
 * This file is auto-generated.
 * Edits to this file will be lost when it is regenerated.
 */

#ifndef __BCM_SWITCH_H__
#define __BCM_SWITCH_H__

#include <bcm/port.h>
#include <bcm/error.h>
#include <shared/switch.h>

/* Switch controls. */
typedef enum bcm_switch_control_e {
    bcmSwitchHgHdrErrToCpu,             /* Higig Header Error to CPU. */
    bcmSwitchClassTagPacketsToCpu,      /* HG2 packets with a PPD header of 1. */
    bcmSwitchIpmcTunnelToCpu,           /* IPMC tunnel packet to CPU. */
    bcmSwitchStationMoveOverLearnLimitToCpu, /* Station movement over MAC learn limit
                                           to CPU. */
    bcmSwitchMcastUnknownErrToCpu,      /* MC unknown Index Error to CPU. */
    bcmSwitchLearnLimitPriority,        /* Priority for MAC limit exceeds to
                                           CPU. */
    bcmSwitchControlOpcodePriority,     /* Control Op Code priority. */
    bcmSwitchCpuProtoBpduPriority,      /* Priority for BPDUs to CPU. */
    bcmSwitchCpuProtoArpPriority,       /* Priority for ARP/ND packets to CPU. */
    bcmSwitchCpuProtoIgmpPriority,      /* Priority for IGMP/MLD packets to CPU. */
    bcmSwitchCpuProtoDhcpPriority,      /* Priority for DHCP packets to CPU. */
    bcmSwitchCpuProtoIpmcReservedPriority, /* Priority for IPv4/IPv6 multicast
                                           packets to CPU. */
    bcmSwitchCpuProtoIpOptionsPriority, /* Priority for IPv4/IPv6 packets with
                                           options or IPv6 packets with 0 len.
                                           Payload/jumbo option to CPU. */
    bcmSwitchCpuProtoExceptionsPriority, /* Priority for IPv4/IPv6 packets with
                                           TTL=1 to CPU. */
    bcmSwitchCpuProtocolPrio,           /* Priority used for BPDUs to CPU. */
    bcmSwitchCpuUnknownPrio,            /* Priority for unknown SA or DA to CPU. */
    bcmSwitchCpuSamplePrio,             /* Priority for sFlow sample to CPU. */
    bcmSwitchCpuDefaultPrio,            /* Priority for all other packets to
                                           CPU. */
    bcmSwitchL2StaticMoveToCpu,         /* Port movement of static L2 addr. */
    bcmSwitchUnknownIpmcToCpu,          /* Send unknown IP multicasts to CPU. */
    bcmSwitchUnknownMcastToCpu,         /* Send unknown multicasts to CPU. */
    bcmSwitchUnknownUcastToCpu,         /* Send DLF packets to CPU. */
    bcmSwitchNonIpL3ErrToCpu,           /* Non-IP packets w/DA of my router MAC
                                           to CPU. */
    bcmSwitchL3HeaderErrToCpu,          /* Invalid checksum, TTL 0, etc. */
    bcmSwitchUnknownVlanToCpu,          /* Packet VLAN not in VLAN table. */
    bcmSwitchUnknownL3SrcToCpu,         /* SIP not found in L3 table. */
    bcmSwitchUnknownL3DestToCpu,        /* DIP not found in L3/LPM tables. */
    bcmSwitchIpmcPortMissToCpu,         /* Incoming port not in IPMC entry. */
    bcmSwitchIpmcErrorToCpu,            /* IPMC pkt has header err or TTL=0. */
    bcmSwitchVCLabelMissToCpu,          /* Send VC mismatch packet to CPU. */
    bcmSwitchSourceRouteToCpu,          /* Send multicast SA packet to CPU. */
    bcmSwitchLLCSAP1,                   /* Get/set SAP_VALUE0 in LLC_MATCH. */
    bcmSwitchLLCSAP2,                   /* Get/set SAP_VALUE1 in LLC_MATCH. */
    bcmSwitchSampleIngressRandomSeed,   /* SFlow ingress RNG seed. */
    bcmSwitchSampleEgressRandomSeed,    /* SFlow egress RNG seed. */
    bcmSwitchCpuFpCopyPrio,             /* Priority used for FP copy to CPU. */
    bcmSwitchCpuIcmpRedirectPrio,       /* Priority for ICMP to CPU. */
    bcmSwitchCpuMtuFailPrio,            /* Priority for MTU failure to CPU. */
    bcmSwitchCpuMirrorPrio,             /* Priority for packets mirrored to CPU. */
    bcmSwitchCpuLookupFpCopyPrio,       /* Priority for Lookup FP copy to SPU. */
    bcmSwitchL2NonStaticMoveToCpu,      /* L2 w/non-static addr to CPU. */
    bcmSwitchV6L3ErrToCpu,              /* Invalid IPv6 packets to CPU. */
    bcmSwitchV6L3DstMissToCpu,          /* IPv6 unknown dest packets to CPU. */
    bcmSwitchV4L3ErrToCpu,              /* Invalid IPv6 packets to CPU. */
    bcmSwitchV4L3DstMissToCpu,          /* IPv6 unknown dest packets to CPU. */
    bcmSwitchTunnelErrToCpu,            /* Invalid tunnel packets to CPU. */
    bcmSwitchMartianAddrToCpu,          /* Martian packets to CPU. */
    bcmSwitchMartianAddr,               /* Enable/Disable Martian packet check. */
    bcmSwitchL3UcTtlErrToCpu,           /* L3 unicast w/invalid TTL to CPU. */
    bcmSwitchL3SlowpathToCpu,           /* Slowpath packets to CPU. */
    bcmSwitchIpmcTtlErrToCpu,           /* IPMC packets w/invalid TTL to CPU. */
    bcmSwitchDosAttackToCpu,            /* Denial of Service attacks to CPU. */
    bcmSwitchDosAttackSipEqualDip,      /* Enable SIP=DIP checking. */
    bcmSwitchDosAttackMinTcpHdrSize,    /* Header length for min TCP header
                                           checking. */
    bcmSwitchDosAttackV4FirstFrag,      /* Enable IPv4 First Frag checking. */
    bcmSwitchDosAttackTcpFlags,         /* Enable TCP flag checking. */
    bcmSwitchDosAttackL4Port,           /* Enable L4 port number checking. */
    bcmSwitchDosAttackTcpFrag,          /* Enable TCP fragment checking. */
    bcmSwitchDosAttackIcmp,             /* Enable ICMP size check. */
    bcmSwitchDosAttackIcmpPktOversize,  /* Max pkt size for ICMP size check. */
    bcmSwitchDosAttackMACSAEqualMACDA,  /* MACSA == MACDA check. */
    bcmSwitchDosAttackIcmpV6PingSize,   /* Max pkt size for v6 ping check. */
    bcmSwitchDosAttackIcmpFragments,    /* Fragmented ICMP packets check. */
    bcmSwitchDosAttackTcpOffset,        /* TCP Header offset equals to 1 check. */
    bcmSwitchDosAttackUdpPortsEqual,    /* UDP packets where SPORT = DROP. */
    bcmSwitchDosAttackTcpPortsEqual,    /* TCP packets where SPORT = DROP. */
    bcmSwitchDosAttackTcpFlagsSF,       /* TCP packets with SYN & FIN bits
                                           enabled. */
    bcmSwitchDosAttackTcpFlagsFUP,      /* TCP packets with FIN, URG, PSH bits
                                           set and sequence number equals 0. */
    bcmSwitchDosAttackTcpHdrPartial,    /* TCP packets with not full TCP header. */
    bcmSwitchDosAttackPingFlood,        /* Enable ping flood checking. */
    bcmSwitchDosAttackSynFlood,         /* Enable SYN flood checking. */
    bcmSwitchDosAttackTcpSmurf,         /* Enable TCP smurf checking. */
    bcmSwitchDosAttackTcpXMas,          /* SeqNum, Fin,Urg,Psh equal 0. */
    bcmSwitchDosAttackL3Header,         /* Ipv4/6 header length checks. */
    bcmSwitchIcmpRedirectToCpu,         /* ICMP redirect To CPU. */
    bcmSwitchMplsErrToCpu,              /* Invalid MPLS packets to CPU. */
    bcmSwitchMplsSequenceErrToCpu,      /* MPLS Sequence number check failure to
                                           CPU. */
    bcmSwitchMplsLabelMissToCpu,        /* MPLS label lookup miss to CPU. */
    bcmSwitchMplsTtlErrToCpu,           /* MPLS Header TTL used value is 0 or 1. */
    bcmSwitchMplsInvalidL3PayloadToCpu, /* MPLS L3 payload invalid. */
    bcmSwitchMplsInvalidActionToCpu,    /* Invalid action / comnination of
                                           actions. */
    bcmSwitchSharedVlanMismatchToCpu,   /* Private VLAN VID mismatch. */
    bcmSwitchL3SrcUrpfErrToCpu,         /* Invalid L3 uRPF SIP to CPU. */
    bcmSwitchGreSourceRoutingToCpu,     /* GRE source routing packets to CPU. */
    bcmSwitchEnifilterDropToCpu,        /* Eni filter dropped packets to CPU. */
    bcmSwitchArpReplyToCpu,             /* ARP replies to CPU. */
    bcmSwitchArpReplyDrop,              /* ARP replies dropped. */
    bcmSwitchArpRequestToCpu,           /* ARP requests to CPU. */
    bcmSwitchArpRequestDrop,            /* ARP requests dropped. */
    bcmSwitchNdPktToCpu,                /* ND packets to CPU. */
    bcmSwitchNdPktDrop,                 /* ND packets dropped. */
    bcmSwitchMcastFloodBlocking,        /* Current PFM rule is applied when
                                           IGMP/MLD/MC/ReservedMC packet flooded
                                           to VLAN. */
    bcmSwitchIgmpPktToCpu,              /* IGMP packets to CPU. */
    bcmSwitchIgmpToCPU = bcmSwitchIgmpPktToCpu, /* Legacy support for IGMP packets to
                                           CPU. */
    bcmSwitchIgmpPktDrop,               /* IGMP packets dropped. */
    bcmSwitchDhcpPktToCpu,              /* DHCP packets to CPU. */
    bcmSwitchDhcpPktDrop,               /* DHCP packets dropped. */
    bcmSwitchMldPktToCpu,               /* MLD packets to CPU. */
    bcmSwitchMldPktDrop,                /* MLD packets dropped. */
    bcmSwitchV4ResvdMcPktToCpu,         /* IPv4 reserved MC packets to CPU. */
    bcmSwitchV4ResvdMcPktDrop,          /* IPv4 reserved MC packets dropped. */
    bcmSwitchV4ResvdMcPktFlood,         /* IPv4 reserved MC packets flooded to
                                           VLAN. */
    bcmSwitchV6ResvdMcPktToCpu,         /* IPv6 reserved MC packets to CPU. */
    bcmSwitchV6ResvdMcPktDrop,          /* IPv6 reserved MC packets dropped. */
    bcmSwitchV6ResvdMcPktFlood,         /* IPv6 reserved MC packets flooded to
                                           VLAN. */
    bcmSwitchIgmpReportLeaveToCpu,      /* IGMP report/leave messages to CPU. */
    bcmSwitchIgmpReportLeaveDrop,       /* IGMP report/leave messages dropped. */
    bcmSwitchIgmpReportLeaveFlood,      /* IGMP report/leave messages flooded to
                                           VLAN. */
    bcmSwitchIgmpQueryToCpu,            /* IGMP query messages to CPU. */
    bcmSwitchIgmpQueryDrop,             /* IGMP query messages dropped. */
    bcmSwitchIgmpQueryFlood,            /* IGMP query messages flooded to VLAN. */
    bcmSwitchIgmpUnknownToCpu,          /* IGMP unknown messages to CPU. */
    bcmSwitchIgmpUnknownDrop,           /* IGMP unknown messages dropped. */
    bcmSwitchIgmpUnknownFlood,          /* IGMP unknown messages flooded to
                                           VLAN. */
    bcmSwitchMldReportDoneToCpu,        /* MLD report/done messages to CPU. */
    bcmSwitchMldReportDoneDrop,         /* MLD report/done messages dropped. */
    bcmSwitchMldReportDoneFlood,        /* MLD report/done messages flooded to
                                           VLAN. */
    bcmSwitchMldQueryToCpu,             /* MLD query messages to CPU. */
    bcmSwitchMldQueryDrop,              /* MLD query messages dropped. */
    bcmSwitchMldQueryFlood,             /* MLD query messages flooded to VLAN. */
    bcmSwitchIpmcV4RouterDiscoveryToCpu, /* IPv4 Router discovery messages to
                                           CPU. */
    bcmSwitchIpmcV4RouterDiscoveryDrop, /* IPv4 Router discovery messages
                                           dropped. */
    bcmSwitchIpmcV4RouterDiscoveryFlood, /* IPv4 Router discovery messages
                                           flooded to VLAN. */
    bcmSwitchIpmcV6RouterDiscoveryToCpu, /* IPv6 Router discovery messages to
                                           CPU. */
    bcmSwitchIpmcV6RouterDiscoveryDrop, /* IPv6 Router discovery messages
                                           dropped. */
    bcmSwitchIpmcV6RouterDiscoveryFlood, /* IPv6 Router discovery messages
                                           flooded to VLAN. */
    bcmSwitchDirectedMirroring,         /* Enable directed mirroring mode. */
    bcmSwitchPktAge,                    /* Chip-wide packet age time, msec. */
    bcmSwitchRemoteL2Lookup,            /* Allow remote L2 lookup request. */
    bcmSwitchMcastFloodDefault,         /* VLAN Multicast flood control. */
    bcmSwitchParityErrorToCpu,          /* Lookup parity error. */
    bcmSwitchL3MtuFailToCpu,            /* L3 MTU check failure. */
    bcmSwitchMeterAdjust,               /* Meter/Rate control with overhead on
                                           wire accounted for per packet. */
    bcmSwitchHashL2,                    /* Hash Select for L2. */
    bcmSwitchHashL3,                    /* Hash Select for L3. */
    bcmSwitchHashMultipath,             /* Hash Select for Multipath. */
    bcmSwitchHashControl,               /* Hash Control of fields. */
    bcmSwitchFieldMultipathHashSelect,  /* Hash Select for FP
                                           bcmFieldActionL3Switch. */
    bcmSwitchFieldMultipathHashSeed,    /* Hash Seed for FP
                                           bcmFieldActionL3Switch. */
    bcmSwitchMirrorStackMode,           /* Select BCM56504, 5670 or 5675-A0
                                           style stacking. */
    bcmSwitchMirrorSrcModCheck,         /* Source modid check in BCM56504 style
                                           of mirroring. */
    bcmSwitchMirrorUnmarked,            /* Send mirror packets as simple
                                           unicast. */
    bcmSwitchDestPortHGTrunk,           /* Enable to use dest port in HiGig
                                           trunking. */
    bcmSwitchColorSelect,               /* Choose color selection source. */
    bcmSwitchModuleLoopback,            /* Allow local module ingress. */
    bcmSwitchSrcModBlockMirrorCopy,     /* Source modid blocking for BCM5670
                                           compatibility. */
    bcmSwitchSrcModBlockMirrorOnly,     /* Source modid blocking for BCM5675-A0
                                           compatibility. */
    bcmSwitchHashSeed0,                 /* BCM56700/56800/56580 hash seeds. */
    bcmSwitchHashSeed1,                 /* For enhanced hashing algoithm. */
    bcmSwitchHashField0PreProcessEnable, /* Enable pre-processing for enhanced
                                           hash mode 0. */
    bcmSwitchHashField1PreProcessEnable, /* Enable pre-processing for enhanced
                                           hash mode 1. */
    bcmSwitchHashField0Config,          /* BCM56700/56800/56580 enhanced hash
                                           mode 0 config. */
    bcmSwitchHashField0Config1,         /* BCM56840 enhanced hash mode 0 config
                                           1. */
    bcmSwitchHashField1Config,          /* BCM56700/56800/56580 enhanced hash
                                           mode 1 config. */
    bcmSwitchHashField1Config1,         /* BCM56840 enhanced hash mode 1 config
                                           1. */
    bcmSwitchMacroFlowHashFieldConfig,  /* Enhanced hash macro flow mode config. */
    bcmSwitchHashSelectControl,         /* BCM56700/56800/56580 field selection
                                           control. */
    bcmSwitchHashIP4Field0,             /* BCM56700/56800/56580 enhanced hash
                                           field. */
    bcmSwitchHashIP4Field1,             /* Selections for IPv4 packets. */
    bcmSwitchHashIP4TcpUdpField0,       /* BCM56840 enhanced hash field. */
    bcmSwitchHashIP4TcpUdpField1,       /* Selections for IPv4 TCP/UDP packets. */
    bcmSwitchHashIP4TcpUdpPortsEqualField0, /* BCM56840 enhanced hash field. */
    bcmSwitchHashIP4TcpUdpPortsEqualField1, /* Selections for IPv4 TCP/UDP packets
                                           with source L4 port equals to
                                           destination L4 port. */
    bcmSwitchHashIP6Field0,             /* BCM56700/56800/56580 enhanced hash
                                           field. */
    bcmSwitchHashIP6Field1,             /* Selections for IPv6 packets. */
    bcmSwitchHashIP6TcpUdpField0,       /* BCM56840 enhanced hash field. */
    bcmSwitchHashIP6TcpUdpField1,       /* Selections for IPv6 TCP/UDP packets. */
    bcmSwitchHashIP6TcpUdpPortsEqualField0, /* BCM56840 enhanced hash field. */
    bcmSwitchHashIP6TcpUdpPortsEqualField1, /* Selections for IPv6 TCP/UDP packets
                                           with source L4 port equals to
                                           destination L4 port. */
    bcmSwitchHashL2Field0,              /* BCM56700/56800/56580 enhanced hash
                                           field. */
    bcmSwitchHashL2Field1,              /* Selections for L2 packets. */
    bcmSwitchHashMPLSField0,            /* BCM56700/56800/56580 enhanced hash
                                           field. */
    bcmSwitchHashMPLSField1,            /* Selections for MPLS packets. */
    bcmSwitchHashFCOEField0,            /* BCM56840 enhanced hash field. */
    bcmSwitchHashFCOEField1,            /* Selections for FCOE packets. */
    bcmSwitchHashL2TrillField0,         /* BCM56840 enhanced hash field. */
    bcmSwitchHashL2TrillField1,         /* Selections for L2 payload Trill
                                           packets. */
    bcmSwitchHashL3TrillField0,         /* BCM56840 enhanced hash field. */
    bcmSwitchHashL3TrillField1,         /* Selections for L3 payload Trill
                                           packets. */
    bcmSwitchHashTrillTunnelField0,     /* BCM56840 enhanced hash field. */
    bcmSwitchHashTrillTunnelField1,     /* Selections Trill tunnel packets. */
    bcmSwitchHashHG2UnknownField0,      /* BCM56700/56800/56580 enhanced hash
                                           field. */
    bcmSwitchHashHG2UnknownField1,      /* Selections for HiGig2 packets. */
    bcmSwitchTrunkHashSet0UnicastOffset, /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchTrunkHashSet1UnicastOffset, /* Selections for unicast trunking. */
    bcmSwitchTrunkHashSet0NonUnicastOffset, /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchTrunkHashSet1NonUnicastOffset, /* Selections for non-unicast trunking. */
    bcmSwitchTrunkFailoverHashOffset,   /* Enhanced hash selections for trunk
                                           failover. */
    bcmSwitchFabricTrunkHashSet0UnicastOffset, /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchFabricTrunkHashSet1UnicastOffset, /* Selections for unicast fabric
                                           trunking. */
    bcmSwitchFabricTrunkHashSet0NonUnicastOffset, /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchFabricTrunkHashSet1NonUnicastOffset, /* Selections for non-unicast fabric
                                           trunking. */
    bcmSwitchFabricTrunkFailoverHashOffset, /* Enhanced hash selections for fabric
                                           trunk failover. */
    bcmSwitchFabricTrunkDynamicHashOffset, /* Enhanced hash selections for fabric
                                           trunk dynamic load balancing. */
    bcmSwitchLoadBalanceHashSet0UnicastOffset, /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchLoadBalanceHashSet1UnicastOffset, /* Selections for unicast load
                                           balancing. */
    bcmSwitchLoadBalanceHashSet0NonUnicastOffset, /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchLoadBalanceHashSet1NonUnicastOffset, /* Selections for non-unicast load
                                           balancing. */
    bcmSwitchMacroFlowHashMinOffset,    /* Minimum offset value to be used in
                                           offset table. */
    bcmSwitchMacroFlowHashMaxOffset,    /* Maximum offset value to be used in
                                           offset table. */
    bcmSwitchMacroFlowHashStrideOffset, /* Offset increment to be used for
                                           populating offset table. */
    bcmSwitchUniformUcastTrunkDistribution, /* Uniform unicast trunk distribution on
                                           trunk with non power of 2 trunk
                                           ports. */
    bcmSwitchUniformFabricTrunkDistribution, /* Uniform Higig trunk distribution on
                                           trunk with non power of 2 trunk
                                           ports. */
    bcmSwitchECMPHashSet0Offset,        /* BCM56700/56800/56580 enhanced hash
                                           bits. */
    bcmSwitchECMPHashSet1Offset,        /* Selections for ECMP. */
    bcmSwitchCpuToCpuEnable,            /* Enable copying packets from CMIC to
                                           CPU. */
    bcmSwitchIgmpUcastEnable,           /* Enable unicast packets with IGMP
                                           payload. */
    bcmSwitchMldUcastEnable,            /* Enable unicast packets with MLD
                                           payload. */
    bcmSwitchIgmpReservedMcastEnable,   /* IGMP packets with reserved MC address
                                           threated as IGMP. */
    bcmSwitchMldReservedMcastEnable,    /* MLD packets with reserved MC address
                                           threated as MLD. */
    bcmSwitchMldDirectAttachedOnly,     /* Stricter checks for MLD packets are
                                           enable. */
    bcmSwitchPortEgressBlockL2,         /* Apply egress mask port blocking on L2
                                           traffic. */
    bcmSwitchPortEgressBlockL3,         /* Apply egress mask port blocking on L3
                                           traffic. */
    bcmSwitchBpduInvalidVlanDrop,       /* BPDU packets are dropped upon invalid
                                           VLAN. */
    bcmSwitchMirrorInvalidVlanDrop,     /* Mirror-to-port packets are dropped
                                           upon invalid VLAN. */
    bcmSwitchMirrorPktChecksEnable,     /* Enable/Disable all packet checks for
                                           mirror packets. */
    bcmSwitchRemoteLearnTrust,          /* Honor the DONOT_LEARN bit in HiGig
                                           header. */
    bcmSwitchSourceMacZeroDrop,         /* Packets with MACSA of all zeros are
                                           dropped. */
    bcmSwitchIpmcGroupMtu,              /* For ingress MTU check for all IPMC
                                           groups. */
    bcmSwitchModuleType,                /* Set Switch module type. */
    bcmSwitchBpduToCPU,                 /* ROBO for all BPDU to CPU. */
    bcmSwitch8021xToCPU,                /* ROBO for MAC SEC to CPU. */
    bcmSwitchBcstToCPU,                 /* ROBO Broadcast to CPU. */
    bcmSwitchExternalL3,                /* Enable external memory for L3. */
    bcmSwitchL3EgressMode,              /* Enable advanced egress management. */
    bcmSwitchL3DefipMultipathCountUpdate, /* Enable control to update L3-DEFIP
                                           ECMP-COUNT */
    bcmSwitchL3IngressMode,             /* Enable advanced Ingress-interface
                                           management. */
    bcmSwitchL3HostAsRouteReturnValue,  /* Enable control to return value, when
                                           prefix added to Route table during
                                           L3HostAdd. */
    bcmSwitchMplsIngressPortCheck,      /* Enable MPLS ILM ingress port checks. */
    bcmSwitchSourceModBlockUcast,       /* Apply source modid block on unicast
                                           packets only. */
    bcmSwitchSourceModBlockControlOpcode, /* Apply source modid block on system
                                           control packets. */
    bcmSwitchEgressBlockUcast,          /* Apply egress mask on unicast packets
                                           only. */
    bcmSwitchAlternateStoreForward,     /* Alternate Store and Forward. */
    bcmSwitchWarmBoot,                  /* Set Warm boot state. */
    bcmSwitchStableSelect,              /* Select the storage (or stable)
                                           location for Level 2 Warm Boot. */
    bcmSwitchStableSize,                /* Select the storage (or stable) size
                                           (bytes) for Level 2 Warm Boot. */
    bcmSwitchStableUsed,                /* Query the storage (or stable) usage
                                           (bytes) for Level 2 Warm Boot. */
    bcmSwitchControlSync,               /* Force a sync of the Level 2 warm boot
                                           state on demand. */
    bcmSwitchControlAutoSync,           /* Perform a sync of the Level 2 warm
                                           boot state after every API. */
    bcmSwitchCallbackAbortOnError,      /* Abort if a callback returns an error
                                           code. */
    bcmSwitchUnknownIpmcAsMcast,        /* Threat unknown IPMC as L2 Mcast. */
    bcmSwitchTunnelUnknownIpmcDrop,     /* Drop unknown IPMC for incomming
                                           tunnel. */
    bcmSwitchDhcpLearn,                 /* Do not learn MACSA of DHCP packet. */
    bcmSwitchIpmcTtl1ToCpu,             /* Copy L3 Mcast with TTL 1 to CPU. */
    bcmSwitchL3UcastTtl1ToCpu,          /* Copy L3 Ucast with TTL 1 to CPU. */
    bcmSwitchDosAttackFlagZeroSeqZero,  /* Null scan. */
    bcmSwitchHgHdrExtLengthEnable,      /* Use HiGig+ HDR_EXT_LEN field. */
    bcmSwitchDosAttackSynFrag,          /* Drop TCP SYN packet with source port
                                           0-1023 for the first segment. */
    bcmSwitchIp4McastL2DestCheck,       /* Check MACDA and IPv4 DIP address
                                           match. */
    bcmSwitchIp6McastL2DestCheck,       /* Check MACDA and IPv6 DIP address
                                           match. */
    bcmSwitchL3InterfaceUrpfEnable,     /* Enable URPF per VLAN/L3-IIF for
                                           unicast packets. */
    bcmSwitchL3TunnelUrpfMode,          /* RPF mode for unicast tunneled
                                           packets. */
    bcmSwitchL3TunnelUrpfDefaultRoute,  /* Enable URPF default gateway check for
                                           unicast tunneled packets. */
    bcmSwitchL3UrpfFailToCpu,           /* Enable trap URPF fail packets to CPU. */
    bcmSwitchL3UrpfRouteEnable,         /* Enable route lookup for URPF check. */
    bcmSwitchL3UrpfRouteEnableExternal, /* Enable External(only) route lookup
                                           for URPF check. */
    bcmSwitchL3UrpfMode,                /* Port rpf mode for unicast packets. */
    bcmSwitchL3UrpfDefaultRoute,        /* Enable URPF default gateway check. */
    bcmSwitchIngressRateLimitIncludeIFG, /* Add bytes to ingress rate limiting
                                           for IFG. */
    bcmSwitchRateLimitLinear,           /* Use linear limits for shaping and
                                           egress metering. */
    bcmSwitchHashL2Dual,                /* Secondary Hash Select for L2. */
    bcmSwitchHashL3Dual,                /* Secondary Hash Select for L3. */
    bcmSwitchHashDualMoveDepth,         /* Maximum moves in dual hash mode. */
    bcmSwitchHashDualMoveDepthL2,       /* Maximum moves in dual hash mode for
                                           L2 tables. */
    bcmSwitchHashDualMoveDepthVlan,     /* Maximum moves in dual hash mode for
                                           vlan tables. */
    bcmSwitchHashDualMoveDepthMpls,     /* Maximum moves in dual hash mode for
                                           mpls tables. */
    bcmSwitchHashDualMoveDepthEgressVlan, /* Maximum moves in dual hash mode for
                                           egress vlan tables. */
    bcmSwitchHashDualMoveDepthL3,       /* Maximum moves in dual hash mode for
                                           L3 tables. */
    bcmSwitchHashL2DualLeastFull,       /* Use least full bank in dual hash L2
                                           tables. */
    bcmSwitchHashL3DualLeastFull,       /* Use least full bank in dual hash L3
                                           tables. */
    bcmSwitchHashMPLSDualLeastFull,     /* Use least full bank in dual hash MPLS
                                           tables. */
    bcmSwitchSharedVlanEnable,          /* Enable shared vlan. */
    bcmSwitchSharedVlanL2McastEnable,   /* Use shared vlan for L2 mcast pkt. */
    bcmSwitchIpmcReplicationSharing,    /* IPMC replication uses lists. */
    bcmSwitchIpmcReplicationAvailabilityThreshold, /* IPMC replication table available
                                           space threshold. */
    bcmSwitchVrfMax,                    /* Maximum VRF ID for the device. */
    bcmSwitchMplsPerVlan,               /* Ability to enable/disable MPLS
                                           per-vlan. */
    bcmSwitchFailoverStackTrunk,        /* Trunk failover support for Stack
                                           ports. */
    bcmSwitchFailoverEtherTrunk,        /* Trunk failover support for Ether
                                           ports. */
    bcmSwitchClassBasedMoveFailPktToCpu, /* Class based check fail pkt to cpu. */
    bcmSwitchClassBasedMoveFailPktDrop, /* Drop class based check fail pkt. */
    bcmSwitchHgHdrMcastFlood,           /* Flood control value in Higig Header. */
    bcmSwitchHgHdrMcastFloodOverride,   /* Use flood control value in Higig
                                           header. */
    bcmSwitchHgHdrIpMcastFlood,         /* IPMC flood control value in Higig
                                           header. */
    bcmSwitchHgHdrIpMcastFloodOverride, /* Use IPMC flood ctrl value in Higig
                                           header. */
    bcmSwitchSTPBlockedFieldBypass,     /* Disable FP when STP state is blocked. */
    bcmSwitchL2PortBlocking,            /* Enable selective port blocking per
                                           MAC address. */
    bcmSwitchHashIpfixIngress,          /* Hash Select for Ingress IPFIX. */
    bcmSwitchHashIpfixIngressDual,      /* Secondary Hash Select for Ingress
                                           IPFIX. */
    bcmSwitchHashIpfixEgress,           /* Hash Select for Egress IPFIX. */
    bcmSwitchHashIpfixEgressDual,       /* Secondary Hash Select for Egress
                                           IPFIX. */
    bcmSwitchHashMPLS,                  /* Hash Select for MPLS entry. */
    bcmSwitchHashMPLSDual,              /* Secondary Hash Select for MPLS entry. */
    bcmSwitchForceForwardFabricTrunk,   /* Fabric trunk resolution in force
                                           forward mode. */
    bcmSwitchUseGport,                  /* Enable GPORT format for
                                           destination/source representation. */
    bcmSwitchHgHdrMcastVlanRange,       /* HIGIG2 broadcast index range */
    bcmSwitchHgHdrMcastL2Range,         /* HIGIG2 multicast index range */
    bcmSwitchHgHdrMcastL3Range,         /* HIGIG2 IPMC index range */
    bcmSwitchMcastL2Range,              /* Multicast index range */
    bcmSwitchMcastL3Range,              /* IPMC index range */
    bcmSwitchHashWlanPort,              /* Hash Select for Wlan SVP entry. */
    bcmSwitchHashWlanPortDual,          /* Secondary hash Select for Wlan SVP
                                           entry. */
    bcmSwitchHashWlanClient,            /* Hash select for Wlan client database
                                           entry */
    bcmSwitchHashWlanClientDual,        /* Secondary hash select for Wlan client
                                           database entry */
    bcmSwitchWlanClientUnauthToCpu,     /* Unauthorized WLAN client's packets to
                                           CPU. */
    bcmSwitchWlanClientRoamedOutErrorToCpu, /* Roamed out WLAN client's packets to
                                           CPU. */
    bcmSwitchWlanClientSrcMacMissToCpu, /* WLAN client with source MAC miss:
                                           packets to CPU. */
    bcmSwitchWlanClientDstMacMissToCpu, /* WLAN client with destination MAC
                                           miss: packets to CPU. */
    bcmSwitchOamHeaderErrorToCpu,       /* Packets with error in the OAM header
                                           to CPU. */
    bcmSwitchOamUnknownVersionToCpu,    /* Packets with unknown OAM version to
                                           CPU. */
    bcmSwitchOamUnknownVersionDrop,     /* Packets with unknown OAM version
                                           Dropped. */
    bcmSwitchOamUnexpectedPktToCpu,     /* OAM Packets with unexpected MDL to
                                           CPU. */
    bcmSwitchOamCcmToCpu,               /* CCM with unexpected MEPID or Interval
                                           to CPU. */
    bcmSwitchOamXconCcmToCpu,           /* CCM with low MDL or unexpected MAID
                                           to CPU. */
    bcmSwitchOamXconOtherToCpu,         /* Other than CCM OAM PDUs with low MDL
                                           to CPU. */
    bcmSwitchL3SrcBindFailToCpu,        /* Packets with L3 source bind table
                                           miss to CPU. */
    bcmSwitchTunnelIp4IdShared,         /* Share the IPv4 ID space across
                                           tunnels. */
    bcmSwitchKeepEgressRtHdr,           /* Leave SBX Egress Route Header on
                                           packets for a given port. */
    bcmSwitchCpuCopyDestination,        /* Destination for CPU bound packets. */
    bcmSwitchCpuProtoTimeSyncPrio,      /* Priority for Time-Sync packets to
                                           CPU. */
    bcmSwitchCpuProtoMmrpPrio,          /* Priority for MMRP packets to CPU. */
    bcmSwitchCpuProtoSrpPrio,           /* Priority for SRP packets to CPU. */
    bcmSwitchTimeSyncPktToCpu,          /* Time-Sync protocol packets to CPU. */
    bcmSwitchTimeSyncPktDrop,           /* Time-Sync protocol packets dropped. */
    bcmSwitchTimeSyncPktFlood,          /* Time-Sync protocol packets flooded to
                                           VLAN. */
    bcmSwitchMmrpPktToCpu,              /* MMRP protocol packets to CPU. */
    bcmSwitchMmrpPktDrop,               /* MMRP protocol packets dropped. */
    bcmSwitchMmrpPktFlood,              /* MMRP protocol packets flooded to
                                           VLAN. */
    bcmSwitchSrpPktToCpu,               /* SRP protocol packets to CPU. */
    bcmSwitchSrpPktDrop,                /* SRP protocol packets dropped. */
    bcmSwitchSrpPktFlood,               /* SRP protocol packets flooded to VLAN. */
    bcmSwitchSRPEthertype,              /* Set SRP protocol ethertype to match. */
    bcmSwitchMMRPEthertype,             /* Set MMRP ethertype to match. */
    bcmSwitchTimeSyncEthertype,         /* Set Timing and Sync protocol
                                           ethertype to match. */
    bcmSwitchSRPDestMacOui,             /* Set SRP protocol MAC upper 3 bytes to
                                           match. */
    bcmSwitchMMRPDestMacOui,            /* Set MMRP protocol MAC upper 3 bytes
                                           to match. */
    bcmSwitchTimeSyncDestMacOui,        /* Set Timnig and Sync protocol MAC
                                           upper 3 bytes to match. */
    bcmSwitchSRPDestMacNonOui,          /* Set SRP protocol MAC lower 3 bytes to
                                           match. */
    bcmSwitchMMRPDestMacNonOui,         /* Set MMRP protocol MAC lower 3 bytes
                                           to match. */
    bcmSwitchTimeSyncDestMacNonOui,     /* Set Timnig and Sync protocol MAC lowe
                                           3 bytes to match. */
    bcmSwitchTimeSyncMessageTypeBitmap, /* Set Timnig and Sync protocol message
                                           bitmap to match. */
    bcmSwitchTimeSyncClassAPktPrio,     /* Set Priority for the Class A. */
    bcmSwitchTimeSyncClassBPktPrio,     /* Set Priority for the Class B. */
    bcmSwitchTimeSyncClassAExeptionPktPrio, /* Set Remapping Priority for exeption
                                           packets in the Class
                                           A. */
    bcmSwitchTimeSyncClassBExeptionPktPrio, /* Set Remapping Priority for exeption
                                           packets in the Class B. */
    bcmSwitchL2McastAllRouterPortsAddEnable, /* Add all-router ports to every L2
                                           multicast entry. */
    bcmSwitchBypassMode,                /* Omit some switching features to
                                           decrease traffic latency. */
    bcmSwitchIpmcSameVlanL3Route,       /* Enable forwarding of known IPMC
                                           packets to the incoming vlan . */
    bcmSwitchAutoQueues,                /* Queues are prealllocated at init
                                           time. */
    bcmSwitchFieldCache,                /* Enable caching of Rule table or field
                                           entries */
    bcmSwitchFieldCommit,               /* Flush the cached Rule table or field
                                           entries to hardware */
    bcmSwitchIpmcCache,                 /* Enable caching of IP Multicast S,G
                                           entries */
    bcmSwitchIpmcCommit,                /* Flush the cached IP Multicast table
                                           entries to hardware */
    bcmSwitchL2Cache,                   /* Enable caching of MAC address entries */
    bcmSwitchL2Commit,                  /* Flush the cached MAC address table to
                                           hardware */
    bcmSwitchL2AgeDelete,               /* Enables deletition of MAC addresses
                                           during aging scan */
    bcmSwitchL3HostCache,               /* Enable caching of L3 Host table
                                           entries */
    bcmSwitchL3HostCommit,              /* Flush the cached L3 Host table to
                                           hardware */
    bcmSwitchL3RouteCache,              /* Enable caching of L3 Route table
                                           entries */
    bcmSwitchL3RouteCommit,             /* Flush the cached L3 Route table to
                                           hardware */
    bcmSwitchL2InvalidCtlToCpu,         /* Packets with invalid L2 control
                                           fields to CPU. */
    bcmSwitchInvalidGreToCpu,           /* Packets with invalid GRE fields to
                                           CPU */
    bcmSwitchHashL2MPLSField0,          /* L2 MPLS enhanced hash field */
    bcmSwitchHashL2MPLSField1,          /* L2 MPLS enhanced hash field */
    bcmSwitchHashL3MPLSField0,          /* L3 MPLS enhanced hash field */
    bcmSwitchHashL3MPLSField1,          /* L3 MPLS enhanced hash field */
    bcmSwitchHashMPLSTunnelField0,      /* MPLS tunnel enhanced hash field */
    bcmSwitchHashMPLSTunnelField1,      /* MPLS tunnel enhanced hash field */
    bcmSwitchHashMIMTunnelField0,       /* MIM tunnel enhanced hash field */
    bcmSwitchHashMIMTunnelField1,       /* MIM tunnel enhanced hash field */
    bcmSwitchHashMIMField0,             /* MIM enhanced hash field */
    bcmSwitchHashMIMField1,             /* MIM enhanced hash field */
    bcmSwitchStgInvalidToCpu,           /* Packets with STG state of egress port
                                           is not in forwarding state to CPU */
    bcmSwitchVlanTranslateEgressMissToCpu, /* Packets with VLAN translation talbe
                                           missed when it is expected to hit to
                                           CPU. */
    bcmSwitchL3PktErrToCpu,             /* Packets with IP length field is
                                           longer than the actual packet length
                                           to CPU. */
    bcmSwitchMtuFailureToCpu,           /* Packets with L2 MTU Failure to CPU. */
    bcmSwitchSrcKnockoutToCpu,          /* Packets with Split horizon or SVP
                                           pruning (SVP==DVP) failure to CPU. */
    bcmSwitchWlanTunnelMismatchToCpu,   /* Packets with incoming WLAN SVP did
                                           not arrive on the expected tunnel to
                                           CPU. */
    bcmSwitchWlanTunnelMismatchDrop,    /* Drop packets with incoming WLAN SVP
                                           did not arrive on the expected
                                           tunnel. */
    bcmSwitchWlanPortMissToCpu,         /* WLAN packets that have a SVP miss to
                                           CPU. */
    bcmSwitchUnknownVlanToCpuCosq,      /* VLAN copy to CPU COS. */
    bcmSwitchStgInvalidToCpuCosq,       /* STG copy to CPU COS. */
    bcmSwitchVlanTranslateEgressMissToCpuCosq, /* VLAN translate miss copy to CPU COS. */
    bcmSwitchTunnelErrToCpuCosq,        /* Tunnel Error to CPU COS. */
    bcmSwitchL3HeaderErrToCpuCosq,      /* L3 Header Error to CPU COS. */
    bcmSwitchL3PktErrToCpuCosq,         /* L3 Pkt Error to CPU COS. */
    bcmSwitchIpmcTtlErrToCpuCosq,       /* TTL drop copy to CPU COS. */
    bcmSwitchMtuFailureToCpuCosq,       /* MTU failure copy to CPU COS. */
    bcmSwitchHgHdrErrToCpuCosq,         /* HIGIG error copy to CPU COS. */
    bcmSwitchSrcKnockoutToCpuCosq,      /* Split horizon or SVP failure to CPU
                                           COS. */
    bcmSwitchWlanTunnelMismatchToCpuCosq, /* WLAN move to CPU COS. */
    bcmSwitchWlanPortMissToCpuCosq,     /* WLAN SVP miss to CPU COS. */
    bcmSwitchIpfixRateViolationDataInsert, /* Allow insert when rate violation is
                                           detected. */
    bcmSwitchIpfixRateViolationPersistent, /* Keep rate violation status
                                           persistent. */
    bcmSwitchHashVlanTranslate,         /* Hash Select for VLAN translate. */
    bcmSwitchHashVlanTranslateDual,     /* Secondary Hash Select for VLAN
                                           translate. */
    bcmSwitchHashEgressVlanTranslate,   /* Hash Select for Egress VLAN
                                           translate. */
    bcmSwitchHashEgressVlanTranslateDual, /* Secondary Hash Select for Egress VLAN
                                           translate. */
    bcmSwitchLayeredQoSResolution,      /* Enable layered QoS resolution mode. */
    bcmSwitchCustomerQueuing,           /* Enable customer domain queuing. */
    bcmSwitchCosqStatThreshold,         /* Sets Statistics Threshold to ACE-TCE
                                           Mode */
    bcmSwitchCosqStatInterval,          /* Sets background ejection Statistics
                                           Interval */
    bcmSwitchEncapErrorToCpu,           /* Encapsulation Error to CPU */
    bcmSwitchMplsPortIndependentLowerRange1, /* Port Independent Lower MPLS Label for
                                           Range-1 */
    bcmSwitchMplsPortIndependentUpperRange1, /* Port Independent Upper MPLS Label for
                                           Range-1 */
    bcmSwitchMplsPortIndependentLowerRange2, /* Port Independent Lower MPLS Label for
                                           Range-2 */
    bcmSwitchMplsPortIndependentUpperRange2, /* Port Independent Upper MPLS Label for
                                           Range-2 */
    bcmSwitchMirrorEgressTrueColorSelect, /* Color override selection for egress
                                           true mirroring */
    bcmSwitchMirrorEgressTruePriority,  /* Priority override selection for
                                           egress true mirroring */
    bcmSwitchPFCClass0Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 0 packet is received. */
    bcmSwitchPFCClass1Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 1 packet is received. */
    bcmSwitchPFCClass2Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 2 packet is received. */
    bcmSwitchPFCClass3Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 3 packet is received. */
    bcmSwitchPFCClass4Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 4 packet is received. */
    bcmSwitchPFCClass5Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 5 packet is received. */
    bcmSwitchPFCClass6Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 6 packet is received. */
    bcmSwitchPFCClass7Queue,            /* Queue to suspend when a Priority Flow
                                           Control class 7 packet is received. */
    bcmSwitchPFCClass0McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 0 packet
                                           is received. */
    bcmSwitchPFCClass1McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 1 packet
                                           is received. */
    bcmSwitchPFCClass2McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 2 packet
                                           is received. */
    bcmSwitchPFCClass3McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 3 packet
                                           is received. */
    bcmSwitchPFCClass4McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 4 packet
                                           is received. */
    bcmSwitchPFCClass5McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 5 packet
                                           is received. */
    bcmSwitchPFCClass6McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 6 packet
                                           is received. */
    bcmSwitchPFCClass7McastQueue,       /* Multicast queue to suspend when a
                                           Priority Flow Control class 7 packet
                                           is received. */
    bcmSwitchPFCClass0DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 0
                                           packet is received. */
    bcmSwitchPFCClass1DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 1
                                           packet is received. */
    bcmSwitchPFCClass2DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 2
                                           packet is received. */
    bcmSwitchPFCClass3DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 3
                                           packet is received. */
    bcmSwitchPFCClass4DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 4
                                           packet is received. */
    bcmSwitchPFCClass5DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 5
                                           packet is received. */
    bcmSwitchPFCClass6DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 6
                                           packet is received. */
    bcmSwitchPFCClass7DestmodQueue,     /* Destination module queue to suspend
                                           when a Priority Flow Control class 7
                                           packet is received. */
    bcmSwitchPFCQueue0Class,            /* Priority Flow Control class for COS
                                           queue 0. */
    bcmSwitchPFCQueue1Class,            /* Priority Flow Control class for COS
                                           queue 1. */
    bcmSwitchPFCQueue2Class,            /* Priority Flow Control class for COS
                                           queue 2. */
    bcmSwitchPFCQueue3Class,            /* Priority Flow Control class for COS
                                           queue 3. */
    bcmSwitchPFCQueue4Class,            /* Priority Flow Control class for COS
                                           queue 4. */
    bcmSwitchPFCQueue5Class,            /* Priority Flow Control class for COS
                                           queue 5. */
    bcmSwitchPFCQueue6Class,            /* Priority Flow Control class for COS
                                           queue 6. */
    bcmSwitchPFCQueue7Class,            /* Priority Flow Control class for COS
                                           queue 7. */
    bcmSwitchReserveLowVlanPort,        /* Set the lower inclusive bounds of the
                                           vlan gport resources.  Get will
                                           return the lowest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveHighVlanPort,       /* Set the highest inclusive bounds of
                                           the vlan gport resources.  Get will
                                           return the highest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveLowMplsPort,        /* Set the lower inclusive bounds of the
                                           mpls gport resources.  Get will
                                           return the lowest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveHighMplsPort,       /* Set the highest inclusive bounds of
                                           the mpls gport resources.  Get will
                                           return the highest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveLowMimPort,         /* Set the lower inclusive bounds of the
                                           mim gport resources.  Get will return
                                           the lowest value supported by the
                                           device.  Setting 0 will remove the
                                           reserved range */
    bcmSwitchReserveHighMimPort,        /* Set the highest inclusive bounds of
                                           the mim gport resources.  Get will
                                           return the highest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveLowEncap,           /* Set the lower inclusive bounds of the
                                           Encap ID resources used internally by
                                           gports.  Get will return the lowest
                                           value supported by the device. 
                                           Setting 0 will remove the reserved
                                           range */
    bcmSwitchReserveHighEncap,          /* Set the highest inclusive bounds of
                                           the Encap ID resources used
                                           internally by gports.  Get will
                                           return the highest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveLowL2Egress,        /* Set the lower inclusive bounds of the
                                           L2 Encap ID resources.  Get will
                                           return the lowest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveHighL2Egress,       /* Set the highest inclusive bounds of
                                           the L2 Encap ID resources.  Get will
                                           return the highest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchReserveLowVpn,             /* Set the lower inclusive bounds of the
                                           VPN ID resources.  Get will return
                                           the lowest value supported by the
                                           device.  Setting 0 will remove the
                                           reserved range */
    bcmSwitchReserveHighVpn,            /* Set the highest inclusive bounds of
                                           the VPN ID resources.  Get will
                                           return the highest value supported by
                                           the device.  Setting 0 will remove
                                           the reserved range */
    bcmSwitchSnapNonZeroOui,            /* Decode SNAP packets with non-zero OUI
                                           for protocol-based VLAN */
    bcmSwitchSynchronousPortClockSource, /* Set ITU-T G.8261/8262 synchronous
                                           ethernet recovered clock source. 
                                           Setting -1 selects in free-run mode
                                           (no recovered clock). Get returns the
                                           current value. */
    bcmSwitchSynchronousPortClockSourceBkup, /* Set ITU-T G.8261/8262 synchronous
                                           ethernet recovered backup clock
                                           source.  Get returns the current
                                           value. */
    bcmSwitchL2HitClear,                /* Clear L2 source and destination hit
                                           bits when set to 1 */
    bcmSwitchL2SrcHitClear,             /* Clear L2 source hit bits when set to
                                           1 */
    bcmSwitchL2DstHitClear,             /* Clear L2 destination hit bits when
                                           set to 1 */
    bcmSwitchL3HostHitClear,            /* Clear L3 host hit bits when set to 1 */
    bcmSwitchL3RouteHitClear,           /* Clear L3 route hit bits when set to 1 */
    bcmSwitchIpmcSameVlanPruning,       /* Allow both L2 and L3 copies of a
                                           packet to go out on a physical port
                                           if it happens to be a member of both
                                           the L2 and L3 bitmaps of the
                                           replication group. */
    bcmSwitchGvrpToCpu,                 /* Management port is the destinatino
                                           port of GVRP frame when set to 1 */
    bcmSwitchGmrpToCpu,                 /* Management port is the destinatino
                                           port of GMRP frame when set to 1 */
    bcmSwitchL2McIdxRetType,            /* When set to 1, L2 multicast API will
                                           return multicast index as
                                           bcm_multicast_t instead of hardware
                                           multicast index. */
    bcmSwitchL3McIdxRetType,            /* When set to 1, IP multicast API will
                                           return multicast index as
                                           bcm_multicast_t instead of hardware
                                           multicast index. */
    bcmSwitchMcastSaDrop,               /* Drop the packet if the SA is mcast
                                           address. */
    bcmSwitchJumboFrameDrop,            /* Drop the Jumbo frame. */
    bcmSwitchDroppedJumboFrameDisLearn, /* No learn on the dropped Jumbo frame. */
    bcmSwitchRangeErrDrop,              /* Drop the range error frame. */
    bcmSwitchDroppedRangeErrDisLearn,   /* No learn on the dropped range error
                                           frame. */
    bcmSwitchArpDhcpToCpu,              /* Set both ARP and DHCP to CPU. */
    bcmSwitchIgmpMldToCpu,              /* Set the snooping mode on both IGMP
                                           and MLD together. */
    bcmSwitchLinkDownInfoSkip,          /* Skip port information gathering
                                           during linkdown event
                                           notification */
    bcmSwitchDestMacZeroDrop,           /* Packets with MACDA of all zeros are
                                           dropped. */
    bcmSwitchL2SourceDiscardMoveToCpu,  /* SRC MAC discard configuration to CPU */
    bcmSwitchNivEthertype,              /* Set ethertype field in VNTAG */
    bcmSwitchNivPrioDropToCpu,          /* NIV priority admittance drop to CPU */
    bcmSwitchNivInterfaceMissToCpu,     /* NIV forwarding lookup miss to CPU */
    bcmSwitchNivRpfFailToCpu,           /* NIV RPF check fail to CPU */
    bcmSwitchNivTagInvalidToCpu,        /* Invalid VNTAG to CPU */
    bcmSwitchNivTagDropToCpu,           /* VNTAG present to CPU */
    bcmSwitchNivUntagDropToCpu,         /* VNTAG not present to CPU */
    bcmSwitchEEEPipelineTime,           /* Time (in system clock cycles) for MAC
                                           to ensure that the egress pipeline is
                                           empty prior to the assertion of the
                                           LPI control signal. */
    bcmSwitchEEEGlobalCongestionThreshold, /* If this threshold is exceeded, EEE is
                                           disabled for all ports. */
    bcmSwitchFiltersControlModes,       /* For the configuration on varies
                                           filter bypass control items. */
    bcmSwitchFiltersControlList,        /* For get only to report the supported
                                           filter bypass control items. */
    bcmSwitchLedFuncGrp0,               /* Set LED functions combination group0 */
    bcmSwitchLedFuncGrp1,               /* FSet LED functions combination group1 */
    bcmSwitchLedFuncGrpSelect,          /* Select the working LED function
                                           combination group */
    bcmSwitchLedMode,                   /* Assign the port based LED mode.(Off |
                                           On | Blink | Auto) */
    bcmSwitchPortBasedQos,              /* The ingress priority for a frame is
                                           decided upon ingress port */
    bcmSwitchRemoteCpuSchanEnable,      /* Enables SCHAN requests for Remote CPU
                                           feature */
    bcmSwitchRemoteCpuFromCpuEnable,    /* Enables recieving packets from CPU
                                           for Remote CPU feature */
    bcmSwitchRemoteCpuToCpuEnable,      /* Enables sending packet to CPU for
                                           Remote CPU feature */
    bcmSwitchRemoteCpuMatchLocalMac,    /* Local MAC addresses matching for
                                           Remote CPU feature */
    bcmSwitchRemoteCpuMatchVlan,        /* VLAN matching for Remote CPU feature */
    bcmSwitchRemoteCpuVlan,             /* VLAN tag to be inserted into Remote
                                           CPU packets */
    bcmSwitchRemoteCpuTpid,             /* TPID tag to be inserted into Remote
                                           CPU packets */
    bcmSwitchRemoteCpuSignature,        /* Unique Signature for Remote CPU
                                           packets */
    bcmSwitchRemoteCpuForceScheduling,  /* Remote CPU packets are forced to have
                                           COS value */
    bcmSwitchRemoteCpuToCpuDestPortAllReasons, /* Remote CPU packets to be forwarded
                                           for all directed reasons */
    bcmSwitchRemoteCpuToCpuDestMacAllReasons, /* Remote CPU packets to be forwarded
                                           for all reasons */
    bcmSwitchRxRedirectPktReasons,      /* All forwarding reasons for normal
                                           packets */
    bcmSwitchRxRedirectPktReasonsExtended, /* All extended forwarding reasons for
                                           normal packets */
    bcmSwitchRxRedirectHigigPktReasons, /* All forwarding reasons for higig
                                           packets */
    bcmSwitchRxRedirectHigigPktReasonsExtended, /* All extended forwarding reasons for
                                           higig packets */
    bcmSwitchRxRedirectTruncatedPktReasons, /* All forwarding reasons for truncated
                                           packets */
    bcmSwitchRxRedirectTruncatedPktReasonsExtended, /* All extended forwarding reasons for
                                           truncated packets */
    bcmSwitchRemoteCpuLocalMacOui,      /* Higher 3 bytes of Local MAC address
                                           used for Remote CPU */
    bcmSwitchRemoteCpuLocalMacNonOui,   /* Lower 3 bytes of Local MAC address
                                           used for Remote CPU */
    bcmSwitchRemoteCpuDestMacOui,       /* Higher 3 bytes of Destination MAC
                                           address used for Remote CPU */
    bcmSwitchRemoteCpuDestMacNonOui,    /* Lower 3 bytes of Destination MAC
                                           address used for Remote CPU */
    bcmSwitchRemoteCpuEthertype,        /* Remote CPU ethertype */
    bcmSwitchRemoteCpuDestPort,         /* Remote CPU will direct raw data
                                           packets with SOBMH
                                           header to a given port */
    bcmSwitchEgressPktAge,              /* Chip-wide egress packet age time,
                                           msec. */
    bcmSwitchFabricTrunkDynamicSampleRate, /* Number of times average port egressed
                                           bytes and queued bytes are computed
                                           in a second */
    bcmSwitchFabricTrunkDynamicEgressBytesExponent, /* The exponent used in the calculation
                                           of exponentially weighted moving
                                           average of port egressed bytes */
    bcmSwitchFabricTrunkDynamicQueuedBytesExponent, /* The exponent used in the calculation
                                           of exponentially weighted moving
                                           average of port queued bytes */
    bcmSwitchFabricTrunkDynamicEgressBytesDecreaseReset, /* If set, the average port egressed
                                           bytes is updated with the sampled
                                           value if the sampled value is less
                                           than the average */
    bcmSwitchFabricTrunkDynamicQueuedBytesDecreaseReset, /* If set, the average port queued bytes
                                           is updated with the sampled value if
                                           the sampled value is less than the
                                           average */
    bcmSwitchFabricTrunkDynamicEgressBytesMinThreshold, /* The minimum threshold, in mbps, used
                                           to quantize average port egressed
                                           bytes */
    bcmSwitchFabricTrunkDynamicEgressBytesMaxThreshold, /* The maximum threshold, in mbps, used
                                           to quantize average port egressed
                                           bytes */
    bcmSwitchFabricTrunkDynamicQueuedBytesMinThreshold, /* The minimum threshold, in bytes, used
                                           to quantize average port queued bytes */
    bcmSwitchFabricTrunkDynamicQueuedBytesMaxThreshold, /* The maximum threshold, in bytes, used
                                           to quantize average port queued bytes */
    bcmSwitchFabricTrunkDynamicEgressBytesPercent, /* Weight of quantized average port
                                           egressed bytes in determining port
                                           quality. The remaining percentage is
                                           the weight of quantized average port
                                           queued bytes. */
    bcmSwitchMacLowPower,               /* Enable switch low power mode and set
                                           the low power frequency, Khz */
    bcmSwitchCongestionCntag,           /* Enable/Disable CN-TAG processing */
    bcmSwitchCongestionCntagEthertype,  /* Ethertype for CN-TAG */
    bcmSwitchCongestionCnm,             /* Enable/Disable congestion
                                           notification message handling */
    bcmSwitchCongestionCnmEthertype,    /* Ethertype for congestion notification
                                           message */
    bcmSwitchCongestionNotificationIdHigh, /* Device identifier for contructing
                                           congestion point identifier */
    bcmSwitchCongestionNotificationIdLow, /* Port identifier for constructing
                                           congestion point identifier */
    bcmSwitchCongestionNotificationIdQueue, /* Queue mode of the congestion point
                                           identifier. When set to 0 use
                                           congestion managed queue id,
                                           otherwise use queue number */
    bcmSwitchCongestionUseOuterTpid,    /* Outer TPID to be used for congestion
                                           notification message */
    bcmSwitchCongestionUseOuterVlan,    /* Outer vlan to be used for congestion
                                           notification message */
    bcmSwitchCongestionUseOuterPktPri,  /* Outer priority to be used for
                                           congestion notification message */
    bcmSwitchCongestionUseOuterCfi,     /* Outer CFI to be used for congestion
                                           notification message */
    bcmSwitchCongestionUseInnerPktPri,  /* Inner priority to be used for
                                           congestion notification message */
    bcmSwitchCongestionUseInnerCfi,     /* Inner CFI to be used for congestion
                                           notification message */
    bcmSwitchCongestionMissingCntag,    /* Choose the CNM generation behavior
                                           when congestion notification
                                           threshold is reached but the incoming
                                           sampled packet does not have CN-TAG */
    bcmSwitchMiMDefaultSVP,             /* Enable MiM termination lookup miss
                                           packets to be forwarded using default
                                           SVP */
    bcmSwitchEgressDroppedReportZeroLength, /* Enable egress pipeline to report zero
                                           length for dropped packets */
    bcmSwitchLoadBalanceHashSelect,     /* Selects which hash function to use
                                           for Load Balance computation */
    bcmSwitchTrillEthertype,            /* Set TRILL Ethertype field. Value of
                                           uint16 type */
    bcmSwitchTrillISISEthertype,        /* Set TRILL ISIS Ethertype field. Value
                                           of uint16 type */
    bcmSwitchTrillISISDestMacOui,       /* Set TRILL All_ISIS_Rbridge MAC upper
                                           3 bytes to match. */
    bcmSwitchTrillBroadcastDestMacOui,  /* Set TRILL ALL_Rbridge MAC upper 3
                                           bytes to match. */
    bcmSwitchTrillEndStationDestMacOui, /* Set TRILL ALL_ESADI MAC upper 3 bytes
                                           to match. */
    bcmSwitchTrillISISDestMacNonOui,    /* Set TRILL ALL_ISIS_Rbridge MAC lower
                                           3 bytes to match. */
    bcmSwitchTrillBroadcastDestMacNonOui, /* Set TRILL ALL_Rbridge MAC lower 3
                                           bytes to match. */
    bcmSwitchTrillEndStationDestMacNonOui, /* Set TRILL ALL_ESADI MAC lower 3 bytes
                                           to match. */
    bcmSwitchTrillMinTtl,               /* Set minimum TTL for Egress and
                                           Transit TRILL Rbridge. */
    bcmSwitchTrillTtlCheckEnable,       /* Enable TTL check for Egress TRILL
                                           Rbridge. */
    bcmSwitchTrillTtlErrToCpu,          /* Copy TRILL TTL failure packets to
                                           CPU. */
    bcmSwitchTrillHeaderErrToCpu,       /* Copy TRILL Header Error frame to CPU. */
    bcmSwitchTrillMismatchToCpu,        /* Copy TRILL mismatch error frame to
                                           CPU. */
    bcmSwitchTrillNameMissToCpu,        /* Copy TRILL Rbridge lookup failure to
                                           CPU. */
    bcmSwitchTrillRpfFailToCpu,         /* Copy TRILL RPF check fail to CPU. */
    bcmSwitchTrillOptionsToCpu,         /* Copy header Options to CPU. */
    bcmSwitchTrillNameErrDrop,          /* Set Drop setting for TRILL packets
                                           with Ingress-name equal to
                                           Egress-name. */
    bcmSwitchTrillRpfFailDrop,          /* Set Drop setting for TRILL multicast
                                           packets that fail RPF check. */
    bcmSwitchTrillHeaderVersionErrDrop, /* Set Drop Setting for TRILL frames
                                           received with a non-zero Version
                                           field. */
    bcmSwitchTrillNameMissDrop,         /* Set Drop setting for TRILL Ingress
                                           RBridge nickname lookup failure. */
    bcmSwitchTrillAdjacencyFailDrop,    /* Set Drop setting for TRILL adjacency
                                           failure. */
    bcmSwitchTrillHeaderErrDrop,        /* Set Drop Setting for TRILL header
                                           error. */
    bcmSwitchUdpPktActionEnable,        /* Enable additional actions for UDP
                                           packets */
    bcmSwitchUdpPktRedirectPbmp,        /* Replace the destination port bitmap
                                           of UDP packets */
    bcmSwitchUdpPktCopyToPbmp,          /* Add the destination port bitmap of
                                           UDP packets */
    bcmSwitchUdpPktNewTc,               /* Change the Traffic Class value of UDP
                                           packets */
    bcmSwitchL3TunnelIpV4ModeOnly,      /* Set L3 Tunnel to IPV4 mode only */
    bcmSwitchL3SrcHitEnable,            /* Enables/Disables source hit bit
                                           lookup update in the L3 table */
    bcmSwitchL2DstHitEnable,            /* Enables/Disables destination hit bit
                                           lookup update in the L2 table */
    bcmSwitchWESPProtocolEnable,        /* Enables/Disables parsing into WESP
                                           payload */
    bcmSwitchWESPProtocol,              /* WESP protocol number */
    bcmSwitchReservedMcastLearn,        /* Enables/Disables source MAC address
                                           learning of reserved multicast
                                           packets */
    bcmSwitchIp6CompressEnable,         /* Enables/Disables IPv6 compression
                                           support in the VFP table */
    bcmSwitchIp6CompressDefaultOffset,  /* Set the offset value used to extract
                                           26-bits from the IPv6 address field
                                           of IPv6 packet */
    bcmSwitchStableSaveLongIds,         /* When saving FP information to storage
                                           for level-2 warm boot, save full
                                           entity ids (i.e. not compact) */
    bcmSwitchGportAnyDefaultL2Learn,    /* Set default cml_value for Any Gport
                                           type. */
    bcmSwitchGportAnyDefaultL2Move,     /* Set default cml_station_move value
                                           for Any Gport type */
    bcmSwitchIngParseL2TunnelTermDipSipSelect, /* Controls the values used to populate
                                           the DIP+SIP containers for
                                           L2-tunnel-terminated packets */
    bcmSwitchIngParseL3L4IPv4,          /* Enable parsing of IPv4 L3/L4 headers */
    bcmSwitchIngParseL3L4IPv6,          /* Enable parsing of IPv6 L3/L4 headers */
    bcmSwitchSetWredJitterMask,         /* Set WRED Jitter value */
    bcmSwitchSetMplsEntropyLabelTtl,    /* Set MPLS Entropy-Label TTL value */
    bcmSwitchSetMplsEntropyLabelPri,    /* Set MPLS Entropy-Label PRI value */
    bcmSwitchSetMplsEntropyLabelOffset, /* Set MPLS Entropy-Label Hash Offset */
    bcmSwitchPonOamFailsafeState,       /* Enables/Disables MPCP fail safe */
    bcmSwitchEquipmentAlarmState,       /* Set equipment alarm report state */
    bcmSwitchPowerAlarmState,           /* Set power alarm report state */
    bcmSwitchBatteryMissingAlarmState,  /* Set battery missing alarm report
                                           state */
    bcmSwitchBatteryFailureAlarmState,  /* Set battery failure alarm report
                                           state */
    bcmSwitchBatteryVoltLowAlarmState,  /* Set battery volt low alarm report
                                           state */
    bcmSwitchBatteryVoltLowAlarmReportThreshold, /* Set battery volt low alarm report
                                           threshold */
    bcmSwitchBatteryVoltLowAlarmClearThreshold, /* Set battery volt low alarm clear
                                           threshold */
    bcmSwitchPhysicalIntrusionAlarmState, /* Set physical instrusion alarm report
                                           state */
    bcmSwitchSelfTestFailureAlarmState, /* Set self test failure alarm report
                                           state */
    bcmSwitchPonIfSwitchAlarmState,     /* Set PON switchover alarm report state */
    bcmSwitchL3IngressInterfaceMapSet,  /* Enable mode to configure
                                           ingress-mapping of Vlan and L3
                                           Ingress Interface */
    bcmSwitchMplsPWControlWordToCpu,    /* Enable MPLS packets with PWACH
                                           control word, to be copied to CPU */
    bcmSwitchMplsPWControlTypeToCpu,    /* Enable MPLS packets with other
                                           control word, to be copied to CPU */
    bcmSwitchMplsPWCountPktsAll,        /* Enable count-all MPLS packets
                                           arriving on PWs */
    bcmSwitchEntropyHashSet0Offset,     /* Selection for MPLS-Entropy-Label hash
                                           bits. */
    bcmSwitchEntropyHashSet1Offset,     /* Selection for MPLS-Entropy-Label hash
                                           bits. */
    bcmSwitch__Count 
} bcm_switch_control_t;

#define BCM_SWITCH_CONTROL_STR \
    "HgHdrErrToCpu", \
    "ClassTagPacketsToCpu", \
    "IpmcTunnelToCpu", \
    "StationMoveOverLearnLimitToCpu", \
    "McastUnknownErrToCpu", \
    "LearnLimitPriority", \
    "ControlOpcodePriority", \
    "CpuProtoBpduPriority", \
    "CpuProtoArpPriority", \
    "CpuProtoIgmpPriority", \
    "CpuProtoDhcpPriority", \
    "CpuProtoIpmcReservedPriority", \
    "CpuProtoIpOptionsPriority", \
    "CpuProtoExceptionsPriority", \
    "CpuProtocolPrio", \
    "CpuUnknownPrio", \
    "CpuSamplePrio", \
    "CpuDefaultPrio", \
    "L2StaticMoveToCpu", \
    "UnknownIpmcToCpu", \
    "UnknownMcastToCpu", \
    "UnknownUcastToCpu", \
    "NonIpL3ErrToCpu", \
    "L3HeaderErrToCpu", \
    "UnknownVlanToCpu", \
    "UnknownL3SrcToCpu", \
    "UnknownL3DestToCpu", \
    "IpmcPortMissToCpu", \
    "IpmcErrorToCpu", \
    "VCLabelMissToCpu", \
    "SourceRouteToCpu", \
    "LLCSAP1", \
    "LLCSAP2", \
    "SampleIngressRandomSeed", \
    "SampleEgressRandomSeed", \
    "CpuFpCopyPrio", \
    "CpuIcmpRedirectPrio", \
    "CpuMtuFailPrio", \
    "CpuMirrorPrio", \
    "CpuLookupFpCopyPrio", \
    "L2NonStaticMoveToCpu", \
    "V6L3ErrToCpu", \
    "V6L3DstMissToCpu", \
    "V4L3ErrToCpu", \
    "V4L3DstMissToCpu", \
    "TunnelErrToCpu", \
    "MartianAddrToCpu", \
    "MartianAddr", \
    "L3UcTtlErrToCpu", \
    "L3SlowpathToCpu", \
    "IpmcTtlErrToCpu", \
    "DosAttackToCpu", \
    "DosAttackSipEqualDip", \
    "DosAttackMinTcpHdrSize", \
    "DosAttackV4FirstFrag", \
    "DosAttackTcpFlags", \
    "DosAttackL4Port", \
    "DosAttackTcpFrag", \
    "DosAttackIcmp", \
    "DosAttackIcmpPktOversize", \
    "DosAttackMACSAEqualMACDA", \
    "DosAttackIcmpV6PingSize", \
    "DosAttackIcmpFragments", \
    "DosAttackTcpOffset", \
    "DosAttackUdpPortsEqual", \
    "DosAttackTcpPortsEqual", \
    "DosAttackTcpFlagsSF", \
    "DosAttackTcpFlagsFUP", \
    "DosAttackTcpHdrPartial", \
    "DosAttackPingFlood", \
    "DosAttackSynFlood", \
    "DosAttackTcpSmurf", \
    "DosAttackTcpXMas", \
    "DosAttackL3Header", \
    "IcmpRedirectToCpu", \
    "MplsErrToCpu", \
    "MplsSequenceErrToCpu", \
    "MplsLabelMissToCpu", \
    "MplsTtlErrToCpu", \
    "MplsInvalidL3PayloadToCpu", \
    "MplsInvalidActionToCpu", \
    "SharedVlanMismatchToCpu", \
    "L3SrcUrpfErrToCpu", \
    "GreSourceRoutingToCpu", \
    "EnifilterDropToCpu", \
    "ArpReplyToCpu", \
    "ArpReplyDrop", \
    "ArpRequestToCpu", \
    "ArpRequestDrop", \
    "NdPktToCpu", \
    "NdPktDrop", \
    "McastFloodBlocking", \
    "IgmpPktToCpu", \
    "IgmpPktDrop", \
    "DhcpPktToCpu", \
    "DhcpPktDrop", \
    "MldPktToCpu", \
    "MldPktDrop", \
    "V4ResvdMcPktToCpu", \
    "V4ResvdMcPktDrop", \
    "V4ResvdMcPktFlood", \
    "V6ResvdMcPktToCpu", \
    "V6ResvdMcPktDrop", \
    "V6ResvdMcPktFlood", \
    "IgmpReportLeaveToCpu", \
    "IgmpReportLeaveDrop", \
    "IgmpReportLeaveFlood", \
    "IgmpQueryToCpu", \
    "IgmpQueryDrop", \
    "IgmpQueryFlood", \
    "IgmpUnknownToCpu", \
    "IgmpUnknownDrop", \
    "IgmpUnknownFlood", \
    "MldReportDoneToCpu", \
    "MldReportDoneDrop", \
    "MldReportDoneFlood", \
    "MldQueryToCpu", \
    "MldQueryDrop", \
    "MldQueryFlood", \
    "IpmcV4RouterDiscoveryToCpu", \
    "IpmcV4RouterDiscoveryDrop", \
    "IpmcV4RouterDiscoveryFlood", \
    "IpmcV6RouterDiscoveryToCpu", \
    "IpmcV6RouterDiscoveryDrop", \
    "IpmcV6RouterDiscoveryFlood", \
    "DirectedMirroring", \
    "PktAge", \
    "RemoteL2Lookup", \
    "McastFloodDefault", \
    "ParityErrorToCpu", \
    "L3MtuFailToCpu", \
    "MeterAdjust", \
    "HashL2", \
    "HashL3", \
    "HashMultipath", \
    "HashControl", \
    "FieldMultipathHashSelect", \
    "FieldMultipathHashSeed", \
    "MirrorStackMode", \
    "MirrorSrcModCheck", \
    "MirrorUnmarked", \
    "DestPortHGTrunk", \
    "ColorSelect", \
    "ModuleLoopback", \
    "SrcModBlockMirrorCopy", \
    "SrcModBlockMirrorOnly", \
    "HashSeed0", \
    "HashSeed1", \
    "HashField0PreProcessEnable", \
    "HashField1PreProcessEnable", \
    "HashField0Config", \
    "HashField0Config1", \
    "HashField1Config", \
    "HashField1Config1", \
    "MacroFlowHashFieldConfig", \
    "HashSelectControl", \
    "HashIP4Field0", \
    "HashIP4Field1", \
    "HashIP4TcpUdpField0", \
    "HashIP4TcpUdpField1", \
    "HashIP4TcpUdpPortsEqualField0", \
    "HashIP4TcpUdpPortsEqualField1", \
    "HashIP6Field0", \
    "HashIP6Field1", \
    "HashIP6TcpUdpField0", \
    "HashIP6TcpUdpField1", \
    "HashIP6TcpUdpPortsEqualField0", \
    "HashIP6TcpUdpPortsEqualField1", \
    "HashL2Field0", \
    "HashL2Field1", \
    "HashMPLSField0", \
    "HashMPLSField1", \
    "HashFCOEField0", \
    "HashFCOEField1", \
    "HashL2TrillField0", \
    "HashL2TrillField1", \
    "HashL3TrillField0", \
    "HashL3TrillField1", \
    "HashTrillTunnelField0", \
    "HashTrillTunnelField1", \
    "HashHG2UnknownField0", \
    "HashHG2UnknownField1", \
    "TrunkHashSet0UnicastOffset", \
    "TrunkHashSet1UnicastOffset", \
    "TrunkHashSet0NonUnicastOffset", \
    "TrunkHashSet1NonUnicastOffset", \
    "TrunkFailoverHashOffset", \
    "FabricTrunkHashSet0UnicastOffset", \
    "FabricTrunkHashSet1UnicastOffset", \
    "FabricTrunkHashSet0NonUnicastOffset", \
    "FabricTrunkHashSet1NonUnicastOffset", \
    "FabricTrunkFailoverHashOffset", \
    "FabricTrunkDynamicHashOffset", \
    "LoadBalanceHashSet0UnicastOffset", \
    "LoadBalanceHashSet1UnicastOffset", \
    "LoadBalanceHashSet0NonUnicastOffset", \
    "LoadBalanceHashSet1NonUnicastOffset", \
    "MacroFlowHashMinOffset", \
    "MacroFlowHashMaxOffset", \
    "MacroFlowHashStrideOffset", \
    "UniformUcastTrunkDistribution", \
    "UniformFabricTrunkDistribution", \
    "ECMPHashSet0Offset", \
    "ECMPHashSet1Offset", \
    "CpuToCpuEnable", \
    "IgmpUcastEnable", \
    "MldUcastEnable", \
    "IgmpReservedMcastEnable", \
    "MldReservedMcastEnable", \
    "MldDirectAttachedOnly", \
    "PortEgressBlockL2", \
    "PortEgressBlockL3", \
    "BpduInvalidVlanDrop", \
    "MirrorInvalidVlanDrop", \
    "MirrorPktChecksEnable", \
    "RemoteLearnTrust", \
    "SourceMacZeroDrop", \
    "IpmcGroupMtu", \
    "ModuleType", \
    "BpduToCPU", \
    "8021xToCPU", \
    "BcstToCPU", \
    "ExternalL3", \
    "L3EgressMode", \
    "L3DefipMultipathCountUpdate", \
    "L3IngressMode", \
    "L3HostAsRouteReturnValue", \
    "MplsIngressPortCheck", \
    "SourceModBlockUcast", \
    "SourceModBlockControlOpcode", \
    "EgressBlockUcast", \
    "AlternateStoreForward", \
    "WarmBoot", \
    "StableSelect", \
    "StableSize", \
    "StableUsed", \
    "ControlSync", \
    "ControlAutoSync", \
    "CallbackAbortOnError", \
    "UnknownIpmcAsMcast", \
    "TunnelUnknownIpmcDrop", \
    "DhcpLearn", \
    "IpmcTtl1ToCpu", \
    "L3UcastTtl1ToCpu", \
    "DosAttackFlagZeroSeqZero", \
    "HgHdrExtLengthEnable", \
    "DosAttackSynFrag", \
    "Ip4McastL2DestCheck", \
    "Ip6McastL2DestCheck", \
    "L3InterfaceUrpfEnable", \
    "L3TunnelUrpfMode", \
    "L3TunnelUrpfDefaultRoute", \
    "L3UrpfFailToCpu", \
    "L3UrpfRouteEnable", \
    "L3UrpfRouteEnableExternal", \
    "L3UrpfMode", \
    "L3UrpfDefaultRoute", \
    "IngressRateLimitIncludeIFG", \
    "RateLimitLinear", \
    "HashL2Dual", \
    "HashL3Dual", \
    "HashDualMoveDepth", \
    "HashDualMoveDepthL2", \
    "HashDualMoveDepthVlan", \
    "HashDualMoveDepthMpls", \
    "HashDualMoveDepthEgressVlan", \
    "HashDualMoveDepthL3", \
    "HashL2DualLeastFull", \
    "HashL3DualLeastFull", \
    "HashMPLSDualLeastFull", \
    "SharedVlanEnable", \
    "SharedVlanL2McastEnable", \
    "IpmcReplicationSharing", \
    "IpmcReplicationAvailabilityThreshold", \
    "VrfMax", \
    "MplsPerVlan", \
    "FailoverStackTrunk", \
    "FailoverEtherTrunk", \
    "ClassBasedMoveFailPktToCpu", \
    "ClassBasedMoveFailPktDrop", \
    "HgHdrMcastFlood", \
    "HgHdrMcastFloodOverride", \
    "HgHdrIpMcastFlood", \
    "HgHdrIpMcastFloodOverride", \
    "STPBlockedFieldBypass", \
    "L2PortBlocking", \
    "HashIpfixIngress", \
    "HashIpfixIngressDual", \
    "HashIpfixEgress", \
    "HashIpfixEgressDual", \
    "HashMPLS", \
    "HashMPLSDual", \
    "ForceForwardFabricTrunk", \
    "UseGport", \
    "HgHdrMcastVlanRange", \
    "HgHdrMcastL2Range", \
    "HgHdrMcastL3Range", \
    "McastL2Range", \
    "McastL3Range", \
    "HashWlanPort", \
    "HashWlanPortDual", \
    "HashWlanClient", \
    "HashWlanClientDual", \
    "WlanClientUnauthToCpu", \
    "WlanClientRoamedOutErrorToCpu", \
    "WlanClientSrcMacMissToCpu", \
    "WlanClientDstMacMissToCpu", \
    "OamHeaderErrorToCpu", \
    "OamUnknownVersionToCpu", \
    "OamUnknownVersionDrop", \
    "OamUnexpectedPktToCpu", \
    "OamCcmToCpu", \
    "OamXconCcmToCpu", \
    "OamXconOtherToCpu", \
    "L3SrcBindFailToCpu", \
    "TunnelIp4IdShared", \
    "KeepEgressRtHdr", \
    "CpuCopyDestination", \
    "CpuProtoTimeSyncPrio", \
    "CpuProtoMmrpPrio", \
    "CpuProtoSrpPrio", \
    "TimeSyncPktToCpu", \
    "TimeSyncPktDrop", \
    "TimeSyncPktFlood", \
    "MmrpPktToCpu", \
    "MmrpPktDrop", \
    "MmrpPktFlood", \
    "SrpPktToCpu", \
    "SrpPktDrop", \
    "SrpPktFlood", \
    "SRPEthertype", \
    "MMRPEthertype", \
    "TimeSyncEthertype", \
    "SRPDestMacOui", \
    "MMRPDestMacOui", \
    "TimeSyncDestMacOui", \
    "SRPDestMacNonOui", \
    "MMRPDestMacNonOui", \
    "TimeSyncDestMacNonOui", \
    "TimeSyncMessageTypeBitmap", \
    "TimeSyncClassAPktPrio", \
    "TimeSyncClassBPktPrio", \
    "TimeSyncClassAExeptionPktPrio", \
    "TimeSyncClassBExeptionPktPrio", \
    "L2McastAllRouterPortsAddEnable", \
    "BypassMode", \
    "IpmcSameVlanL3Route", \
    "AutoQueues", \
    "FieldCache", \
    "FieldCommit", \
    "IpmcCache", \
    "IpmcCommit", \
    "L2Cache", \
    "L2Commit", \
    "L2AgeDelete", \
    "L3HostCache", \
    "L3HostCommit", \
    "L3RouteCache", \
    "L3RouteCommit", \
    "L2InvalidCtlToCpu", \
    "InvalidGreToCpu", \
    "HashL2MPLSField0", \
    "HashL2MPLSField1", \
    "HashL3MPLSField0", \
    "HashL3MPLSField1", \
    "HashMPLSTunnelField0", \
    "HashMPLSTunnelField1", \
    "HashMIMTunnelField0", \
    "HashMIMTunnelField1", \
    "HashMIMField0", \
    "HashMIMField1", \
    "StgInvalidToCpu", \
    "VlanTranslateEgressMissToCpu", \
    "L3PktErrToCpu", \
    "MtuFailureToCpu", \
    "SrcKnockoutToCpu", \
    "WlanTunnelMismatchToCpu", \
    "WlanTunnelMismatchDrop", \
    "WlanPortMissToCpu", \
    "UnknownVlanToCpuCosq", \
    "StgInvalidToCpuCosq", \
    "VlanTranslateEgressMissToCpuCosq", \
    "TunnelErrToCpuCosq", \
    "L3HeaderErrToCpuCosq", \
    "L3PktErrToCpuCosq", \
    "IpmcTtlErrToCpuCosq", \
    "MtuFailureToCpuCosq", \
    "HgHdrErrToCpuCosq", \
    "SrcKnockoutToCpuCosq", \
    "WlanTunnelMismatchToCpuCosq", \
    "WlanPortMissToCpuCosq", \
    "IpfixRateViolationDataInsert", \
    "IpfixRateViolationPersistent", \
    "HashVlanTranslate", \
    "HashVlanTranslateDual", \
    "HashEgressVlanTranslate", \
    "HashEgressVlanTranslateDual", \
    "LayeredQoSResolution", \
    "CustomerQueuing", \
    "CosqStatThreshold", \
    "CosqStatInterval", \
    "EncapErrorToCpu", \
    "MplsPortIndependentLowerRange1", \
    "MplsPortIndependentUpperRange1", \
    "MplsPortIndependentLowerRange2", \
    "MplsPortIndependentUpperRange2", \
    "MirrorEgressTrueColorSelect", \
    "MirrorEgressTruePriority", \
    "PFCClass0Queue", \
    "PFCClass1Queue", \
    "PFCClass2Queue", \
    "PFCClass3Queue", \
    "PFCClass4Queue", \
    "PFCClass5Queue", \
    "PFCClass6Queue", \
    "PFCClass7Queue", \
    "PFCClass0McastQueue", \
    "PFCClass1McastQueue", \
    "PFCClass2McastQueue", \
    "PFCClass3McastQueue", \
    "PFCClass4McastQueue", \
    "PFCClass5McastQueue", \
    "PFCClass6McastQueue", \
    "PFCClass7McastQueue", \
    "PFCClass0DestmodQueue", \
    "PFCClass1DestmodQueue", \
    "PFCClass2DestmodQueue", \
    "PFCClass3DestmodQueue", \
    "PFCClass4DestmodQueue", \
    "PFCClass5DestmodQueue", \
    "PFCClass6DestmodQueue", \
    "PFCClass7DestmodQueue", \
    "PFCQueue0Class", \
    "PFCQueue1Class", \
    "PFCQueue2Class", \
    "PFCQueue3Class", \
    "PFCQueue4Class", \
    "PFCQueue5Class", \
    "PFCQueue6Class", \
    "PFCQueue7Class", \
    "ReserveLowVlanPort", \
    "ReserveHighVlanPort", \
    "ReserveLowMplsPort", \
    "ReserveHighMplsPort", \
    "ReserveLowMimPort", \
    "ReserveHighMimPort", \
    "ReserveLowEncap", \
    "ReserveHighEncap", \
    "ReserveLowL2Egress", \
    "ReserveHighL2Egress", \
    "ReserveLowVpn", \
    "ReserveHighVpn", \
    "SnapNonZeroOui", \
    "SynchronousPortClockSource", \
    "SynchronousPortClockSourceBkup", \
    "L2HitClear", \
    "L2SrcHitClear", \
    "L2DstHitClear", \
    "L3HostHitClear", \
    "L3RouteHitClear", \
    "IpmcSameVlanPruning", \
    "GvrpToCpu", \
    "GmrpToCpu", \
    "L2McIdxRetType", \
    "L3McIdxRetType", \
    "McastSaDrop", \
    "JumboFrameDrop", \
    "DroppedJumboFrameDisLearn", \
    "RangeErrDrop", \
    "DroppedRangeErrDisLearn", \
    "ArpDhcpToCpu", \
    "IgmpMldToCpu", \
    "LinkDownInfoSkip", \
    "DestMacZeroDrop", \
    "L2SourceDiscardMoveToCpu", \
    "NivEthertype", \
    "NivPrioDropToCpu", \
    "NivInterfaceMissToCpu", \
    "NivRpfFailToCpu", \
    "NivTagInvalidToCpu", \
    "NivTagDropToCpu", \
    "NivUntagDropToCpu", \
    "EEEPipelineTime", \
    "EEEGlobalCongestionThreshold", \
    "FiltersControlModes", \
    "FiltersControlList", \
    "LedFuncGrp0", \
    "LedFuncGrp1", \
    "LedFuncGrpSelect", \
    "LedMode", \
    "PortBasedQos", \
    "RemoteCpuSchanEnable", \
    "RemoteCpuFromCpuEnable", \
    "RemoteCpuToCpuEnable", \
    "RemoteCpuMatchLocalMac", \
    "RemoteCpuMatchVlan", \
    "RemoteCpuVlan", \
    "RemoteCpuTpid", \
    "RemoteCpuSignature", \
    "RemoteCpuForceScheduling", \
    "RemoteCpuToCpuDestPortAllReasons", \
    "RemoteCpuToCpuDestMacAllReasons", \
    "RxRedirectPktReasons", \
    "RxRedirectPktReasonsExtended", \
    "RxRedirectHigigPktReasons", \
    "RxRedirectHigigPktReasonsExtended", \
    "RxRedirectTruncatedPktReasons", \
    "RxRedirectTruncatedPktReasonsExtended", \
    "RemoteCpuLocalMacOui", \
    "RemoteCpuLocalMacNonOui", \
    "RemoteCpuDestMacOui", \
    "RemoteCpuDestMacNonOui", \
    "RemoteCpuEthertype", \
    "RemoteCpuDestPort", \
    "EgressPktAge", \
    "FabricTrunkDynamicSampleRate", \
    "FabricTrunkDynamicEgressBytesExponent", \
    "FabricTrunkDynamicQueuedBytesExponent", \
    "FabricTrunkDynamicEgressBytesDecreaseReset", \
    "FabricTrunkDynamicQueuedBytesDecreaseReset", \
    "FabricTrunkDynamicEgressBytesMinThreshold", \
    "FabricTrunkDynamicEgressBytesMaxThreshold", \
    "FabricTrunkDynamicQueuedBytesMinThreshold", \
    "FabricTrunkDynamicQueuedBytesMaxThreshold", \
    "FabricTrunkDynamicEgressBytesPercent", \
    "MacLowPower", \
    "CongestionCntag", \
    "CongestionCntagEthertype", \
    "CongestionCnm", \
    "CongestionCnmEthertype", \
    "CongestionNotificationIdHigh", \
    "CongestionNotificationIdLow", \
    "CongestionNotificationIdQueue", \
    "CongestionUseOuterTpid", \
    "CongestionUseOuterVlan", \
    "CongestionUseOuterPktPri", \
    "CongestionUseOuterCfi", \
    "CongestionUseInnerPktPri", \
    "CongestionUseInnerCfi", \
    "CongestionMissingCntag", \
    "MiMDefaultSVP", \
    "EgressDroppedReportZeroLength", \
    "LoadBalanceHashSelect", \
    "TrillEthertype", \
    "TrillISISEthertype", \
    "TrillISISDestMacOui", \
    "TrillBroadcastDestMacOui", \
    "TrillEndStationDestMacOui", \
    "TrillISISDestMacNonOui", \
    "TrillBroadcastDestMacNonOui", \
    "TrillEndStationDestMacNonOui", \
    "TrillMinTtl", \
    "TrillTtlCheckEnable", \
    "TrillTtlErrToCpu", \
    "TrillHeaderErrToCpu", \
    "TrillMismatchToCpu", \
    "TrillNameMissToCpu", \
    "TrillRpfFailToCpu", \
    "TrillOptionsToCpu", \
    "TrillNameErrDrop", \
    "TrillRpfFailDrop", \
    "TrillHeaderVersionErrDrop", \
    "TrillNameMissDrop", \
    "TrillAdjacencyFailDrop", \
    "TrillHeaderErrDrop", \
    "UdpPktActionEnable", \
    "UdpPktRedirectPbmp", \
    "UdpPktCopyToPbmp", \
    "UdpPktNewTc", \
    "L3TunnelIpV4ModeOnly", \
    "L3SrcHitEnable", \
    "L2DstHitEnable", \
    "WESPProtocolEnable", \
    "WESPProtocol", \
    "ReservedMcastLearn", \
    "Ip6CompressEnable", \
    "Ip6CompressDefaultOffset", \
    "StableSaveLongIds", \
    "GportAnyDefaultL2Learn", \
    "GportAnyDefaultL2Move", \
    "IngParseL2TunnelTermDipSipSelect", \
    "IngParseL3L4IPv4", \
    "IngParseL3L4IPv6", \
    "SetWredJitterMask", \
    "SetMplsEntropyLabelTtl", \
    "SetMplsEntropyLabelPri", \
    "SetMplsEntropyLabelOffset", \
    "PonOamFailsafeState", \
    "EquipmentAlarmState", \
    "PowerAlarmState", \
    "BatteryMissingAlarmState", \
    "BatteryFailureAlarmState", \
    "BatteryVoltLowAlarmState", \
    "BatteryVoltLowAlarmReportThreshold", \
    "BatteryVoltLowAlarmClearThreshold", \
    "PhysicalIntrusionAlarmState", \
    "SelfTestFailureAlarmState", \
    "PonIfSwitchAlarmState", \
    "L3IngressInterfaceMapSet", \
    "MplsPWControlWordToCpu", \
    "MplsPWControlTypeToCpu", \
    "MplsPWCountPktsAll", \
    "EntropyHashSet0Offset", \
    "EntropyHashSet1Offset" 

/* Module types for bcmSwitchModuleType. */
#define BCM_SWITCH_MODULE_UNKNOWN   0          
#define BCM_SWITCH_MODULE_XGS1      1          
#define BCM_SWITCH_MODULE_XGS2      2          
#define BCM_SWITCH_MODULE_XGS3      3          

/* Unicast RPF lookup modes. */
#define BCM_SWITCH_URPF_DISABLE (0)        
#define BCM_SWITCH_URPF_LOOSE   (1)        
#define BCM_SWITCH_URPF_STRICT  (2)        

/* Argument formatting macro for bcmSwitchModuleType. */
#define BCM_SWITCH_CONTROL_MOD_TYPE_PACK(modid, mod_type)  \
    (((modid) << 16) | (mod_type & 0xFFFF)) 
#define BCM_SWITCH_CONTROL_MODID_UNPACK(arg)  \
    (((arg) >> 16) & 0xFFFF) 
#define BCM_SWITCH_CONTROL_MODTYPE_UNPACK(arg)  \
    (((arg) >> 0) & 0xFFFF) 

/* Stable locations for bcmSwitchStableSelect */
#define BCM_SWITCH_STABLE_NONE              (_SHR_SWITCH_STABLE_NONE) 
#define BCM_SWITCH_STABLE_DEVICE_NEXT_HOP   (_SHR_SWITCH_STABLE_DEVICE_NEXT_HOP) 
#define BCM_SWITCH_STABLE_DEVICE_EXT_MEM    (_SHR_SWITCH_STABLE_DEVICE_EXT_MEM) 
#define BCM_SWITCH_STABLE_APPLICATION       (_SHR_SWITCH_STABLE_APPLICATION) 

#ifndef BCM_HIDE_DISPATCHABLE

/* Configure port-specific and device-wide operating modes. */
extern int bcm_switch_control_get(
    int unit, 
    bcm_switch_control_t type, 
    int *arg);

/* Configure port-specific and device-wide operating modes. */
extern int bcm_switch_control_set(
    int unit, 
    bcm_switch_control_t type, 
    int arg);

/* Configure port-specific and device-wide operating modes. */
extern int bcm_switch_control_port_get(
    int unit, 
    bcm_port_t port, 
    bcm_switch_control_t type, 
    int *arg);

/* Configure port-specific and device-wide operating modes. */
extern int bcm_switch_control_port_set(
    int unit, 
    bcm_port_t port, 
    bcm_switch_control_t type, 
    int arg);

/* Configure encapsulation priority for the internal priority queue. */
extern int bcm_switch_rcpu_encap_priority_map_set(
    int unit, 
    uint32 flags, 
    int internal_cpu_pri, 
    int encap_pri);

/* Retrieve encapsulation priority of the internal priority queue. */
extern int bcm_switch_rcpu_encap_priority_map_get(
    int unit, 
    uint32 flags, 
    int internal_cpu_pri, 
    int *encap_pri);

#endif /* BCM_HIDE_DISPATCHABLE */

/* 
 * Read function signature to register for the application provided
 * stable for Level 2 Warm Boot
 */
typedef int (*bcm_switch_read_func_t)(
    int unit, 
    uint32 *buf, 
    int offset, 
    int nbytes);

/* 
 * Write function signature to register for the application provided
 * stable for Level 2 Warm Boot
 */
typedef int (*bcm_switch_write_func_t)(
    int unit, 
    uint32 *buf, 
    int offset, 
    int nbytes);

#ifndef BCM_HIDE_DISPATCHABLE

/* 
 * Register read/write functions for the application provided stable for
 * Level 2 Warm Boot
 */
extern int bcm_switch_stable_register(
    int unit, 
    bcm_switch_read_func_t rf, 
    bcm_switch_write_func_t wf);

#endif /* BCM_HIDE_DISPATCHABLE */

/* Call back function signature to register */
typedef void (*bcm_switch_event_cb_t)(
    int unit, 
    bcm_switch_event_t event, 
    uint32 arg1, 
    uint32 arg2, 
    uint32 arg3, 
    void *userdata);

#ifndef BCM_HIDE_DISPATCHABLE

/* Register callback function for critical events. */
extern int bcm_switch_event_register(
    int unit, 
    bcm_switch_event_cb_t cb, 
    void *userdata);

/* Unregister callback function for critical events. */
extern int bcm_switch_event_unregister(
    int unit, 
    bcm_switch_event_cb_t cb, 
    void *userdata);

#endif /* BCM_HIDE_DISPATCHABLE */

/* Backward compatibility. */
#define bcm_switch_port_control_get bcm_switch_control_port_set 
#define bcm_switch_port_control_set bcm_switch_control_port_set 

#define BCM_HASH_ZERO           0x00000001 /* Always return 0 (debug only). */
#define BCM_HASH_LSB            0x00000002 /* Return LSB of key. */
#define BCM_HASH_CRC16L         0x00000003 /* Lower bits of CRC-16. */
#define BCM_HASH_CRC16U         0x00000004 /* Upper bits of CRC-16. */
#define BCM_HASH_CRC32L         0x00000005 /* Lower bits of CRC-32. */
#define BCM_HASH_CRC32U         0x00000006 /* Upper bits of CRC-32. */
#define BCM_HASH_XORU           0x00000007 /* Upper bits of byte by byte XOR. */
#define BCM_HASH_XORL           0x00000008 /* Lower bits of byte by byte XOR. */

/* Multipath (ECMP/WCMP) hashing. */
#define BCM_HASH_CONTROL_MULTIPATH_L4PORTS  0x0001     /* Use TCP/UDP ports. */
#define BCM_HASH_CONTROL_MULTIPATH_DIP      0x0002     /* Use destination IP
                                                          address. */
#define BCM_HASH_CONTROL_MULTIPATH_USERDEF(_val)  \
    (((_val) & 0xff) << 24) 
#define BCM_HASH_CONTROL_MULTIPATH_USERDEF_VAL(c)  \
    ((c) >> 24 & 0xff) 

/* Unicast trunk hash controls. */
#define BCM_HASH_CONTROL_TRUNK_UC_XGS2      0x0004     /* 5695 compatible hash. */
#define BCM_HASH_CONTROL_TRUNK_UC_SRCPORT   0x0008     /* Use source port. */

/* Non-unicast trunk block mask hash controls. */
#define BCM_HASH_CONTROL_TRUNK_NUC_DST      0x0010     /* Use destination MAC or
                                                          IP address. */
#define BCM_HASH_CONTROL_TRUNK_NUC_SRC      0x0020     /* Use source MAC or IP
                                                          address. */
#define BCM_HASH_CONTROL_TRUNK_NUC_MODPORT  0x0040     /* Use module ID and
                                                          port. */

/* Use enhanced (aka. RTAG7) hashing algorithm. */
#define BCM_HASH_CONTROL_ECMP_ENHANCE       0x0080     /* Use enhanced ECMP
                                                          hashing. */
#define BCM_HASH_CONTROL_TRUNK_NUC_ENHANCE  0x0100     /* Use enhanced
                                                          non-unicast trunk
                                                          hashing. */

/* Enhanced hash field config control. */
#define BCM_HASH_FIELD_CONFIG_CRC16XOR8     0x00000001 /* 8-bit CRC16 + 8-bit
                                                          XOR8. */
#define BCM_HASH_FIELD_CONFIG_CRC16XOR4     0x00000002 /* 8-bit CRC16 + 8-bit
                                                          XOR4. */
#define BCM_HASH_FIELD_CONFIG_CRC16XOR2     0x00000003 /* 8-bit CRC16 + 8-bit
                                                          XOR2. */
#define BCM_HASH_FIELD_CONFIG_CRC16XOR1     0x00000004 /* 8-bit CRC16 + 8-bit
                                                          XOR1. */
#define BCM_HASH_FIELD_CONFIG_CRC16         0x00000005 /* 16-bit CRC16. */
#define BCM_HASH_FIELD_CONFIG_XOR16         0x00000006 /* 16-bit XOR. */
#define BCM_HASH_FIELD_CONFIG_CRC16CCITT    0x00000007 /* 16-bit CRC using CCITT
                                                          polynomial. */
#define BCM_HASH_FIELD_CONFIG_CRC32LO       0x00000008 /* Lower 16-bit of CRC32. */
#define BCM_HASH_FIELD_CONFIG_CRC32HI       0x00000009 /* Higher 16-bit of
                                                          CRC32. */

/* Enhanced hash field selection disable control. */
#define BCM_HASH_FIELD0_DISABLE_IP4         0x00000001 /* Selection 0 for IPv4
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_IP4         0x00000002 /* Selection 1 for IPv4
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_IP6         0x00000004 /* Selection 0 for IPv6
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_IP6         0x00000008 /* Selection 1 for IPv6
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_MPLS        0x00000010 /* Selection 0 for MPLS
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_MPLS        0x00000020 /* Selection 1 for MPLS
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_IP 0x00000040 /* Selection 0 for tunnel
                                                          IPv4 over IPv4
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_IP 0x00000080 /* Selection 1 for tunnel
                                                          IPv4 over IPv4
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_IP 0x00000100 /* Selection 0 for tunnel
                                                          IPv6 over IPv4
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_IP 0x00000200 /* Selection 1 for tunnel
                                                          IPv6 over IPv4
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE 0x00000400 /* Selection 0 for tunnel
                                                          IPv4 over GRE packets. */
#define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE 0x00000800 /* Selection 1 for tunnel
                                                          IPv4 over GRE packets. */
#define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE 0x00001000 /* Selection 0 for tunnel
                                                          IPv6 over GRE packets. */
#define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE 0x00002000 /* Selection 1 for tunnel
                                                          IPv6 over GRE packets. */
#define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_IP6 0x00004000 /* Selection 0 for tunnel
                                                          IPv4 over IPv6
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_IP6 0x00008000 /* Selection 1 for tunnel
                                                          IPv4 over IPv6
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_IP6 0x00010000 /* Selection 0 for tunnel
                                                          IPv6 over IPv6
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_IP6 0x00020000 /* Selection 1 for tunnel
                                                          IPv6 over IPv6
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_MIM         0x00040000 /* Selection 0 for MIM
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_MIM         0x00080000 /* Selection 1 for MIM
                                                          packets. */
#define BCM_HASH_FIELD0_DISABLE_FCOE        0x00100000 /* Selection 0 for FCoE
                                                          packets. */
#define BCM_HASH_FIELD1_DISABLE_FCOE        0x00200000 /* Selection 1 for FCoE
                                                          packets. */

/* Enhanced hash field selection. */
#define BCM_HASH_FIELD_DSTMOD           0x00000001 /* Destination module ID. */
#define BCM_HASH_FIELD_DSTPORT          0x00000002 /* Destination port ID. */
#define BCM_HASH_FIELD_SRCMOD           0x00000004 /* Source modle ID. */
#define BCM_HASH_FIELD_SRCPORT          0x00000008 /* Souce port ID. */
#define BCM_HASH_FIELD_PROTOCOL         0x00000010 /* Protocol ID. */
#define BCM_HASH_FIELD_DSTL4            0x00000020 /* Destination L4 port. */
#define BCM_HASH_FIELD_SRCL4            0x00000040 /* Source L4 port. */
#define BCM_HASH_FIELD_VLAN             0x00000080 /* VLAN ID. */
#define BCM_HASH_FIELD_IP4DST_LO        0x00000100 /* IPv4 destination address
                                                      lower 16 bits. */
#define BCM_HASH_FIELD_IP4DST_HI        0x00000200 /* IPv4 destination address
                                                      upper 16 bits. */
#define BCM_HASH_FIELD_IP4SRC_LO        0x00000400 /* IPv4 source address lower
                                                      16 bits. */
#define BCM_HASH_FIELD_IP4SRC_HI        0x00000800 /* IPv4 source address upper
                                                      16 bits. */
#define BCM_HASH_FIELD_IP6DST_LO        0x00001000 /* IPv6 collapsed destination
                                                      address lower 16 bits. */
#define BCM_HASH_FIELD_IP6DST_HI        0x00002000 /* IPv6 collapsed destination
                                                      address upper 16 bits. */
#define BCM_HASH_FIELD_IP6SRC_LO        0x00004000 /* IPv6 collapsed source
                                                      address lower 16 bits. */
#define BCM_HASH_FIELD_IP6SRC_HI        0x00008000 /* IPv6 collapsed source
                                                      address upper 16 bits. */
#define BCM_HASH_FIELD_NXT_HDR          0x00010000 /* Next header. */
#define BCM_HASH_FIELD_ETHER_TYPE       0x00020000 /* Ether type. */
#define BCM_HASH_FIELD_MACDA_LO         0x00040000 /* MAC destination address
                                                      lower 16 bits. */
#define BCM_HASH_FIELD_MACDA_MI         0x00080000 /* MAC destination address
                                                      middle 16 bits. */
#define BCM_HASH_FIELD_MACDA_HI         0x00100000 /* MAC destination address
                                                      upper 16 bits. */
#define BCM_HASH_FIELD_MACSA_LO         0x00200000 /* MAC source address lower
                                                      16 bits. */
#define BCM_HASH_FIELD_MACSA_MI         0x00400000 /* MAC source address middle
                                                      16 bits. */
#define BCM_HASH_FIELD_MACSA_HI         0x00800000 /* MAC source address upper
                                                      16 bits. */
#define BCM_HASH_FIELD_LOAD_BALANCE     0x01000000 /* Load balance ID - HiGig2
                                                      only. */
#define BCM_HASH_FIELD_RSVD_LABELS      0x02000000 /* Reserved second label, top
                                                      label. */
#define BCM_HASH_FIELD_2ND_LABEL        0x04000000 /* Second label. */
#define BCM_HASH_FIELD_TOP_LABEL        0x08000000 /* Top label. */
#define BCM_HASH_FIELD_LOOKUP_ID_LO     0x10000000 /* Used for ISID[15:0]. */
#define BCM_HASH_FIELD_LOOKUP_ID_HI     0x20000000 /* Used for ISID[23:16]. */
#define BCM_HASH_FIELD_CNTAG_FLOW_ID    0x40000000 /* CNTAG flow ID. */

/* Enhanced hash MPLS field selection. */
#define BCM_HASH_MPLS_FIELD_DSTMOD          BCM_HASH_FIELD_DSTMOD /* Destination module ID. */
#define BCM_HASH_MPLS_FIELD_DSTPORT         BCM_HASH_FIELD_DSTPORT /* Destination port ID. */
#define BCM_HASH_MPLS_FIELD_SRCMOD          BCM_HASH_FIELD_SRCMOD /* Source modle ID. */
#define BCM_HASH_MPLS_FIELD_SRCPORT         BCM_HASH_FIELD_SRCPORT /* Souce port ID. */
#define BCM_HASH_MPLS_FIELD_3RD_LABEL       0x00000010 /* Third label. */
#define BCM_HASH_MPLS_FIELD_LABELS_4MSB     0x00000020 /* Most significant 4
                                                          bits of top, second,
                                                          and third label. */
#define BCM_HASH_MPLS_FIELD_IP4DST_LO       BCM_HASH_FIELD_IP4DST_LO /* IPv4 destination
                                                          address lower 16 bits. */
#define BCM_HASH_MPLS_FIELD_IP4DST_HI       BCM_HASH_FIELD_IP4DST_HI /* IPv4 destination
                                                          address upper 16 bits. */
#define BCM_HASH_MPLS_FIELD_IP4SRC_LO       BCM_HASH_FIELD_IP4SRC_LO /* IPv4 source address
                                                          lower 16 bits. */
#define BCM_HASH_MPLS_FIELD_IP4SRC_HI       BCM_HASH_FIELD_IP4SRC_HI /* IPv4 source address
                                                          upper 16 bits. */
#define BCM_HASH_MPLS_FIELD_2ND_LABEL       BCM_HASH_FIELD_2ND_LABEL /* Second label. */
#define BCM_HASH_MPLS_FIELD_TOP_LABEL       BCM_HASH_FIELD_TOP_LABEL /* Top label. */
#define BCM_HASH_MPLS_FIELD_CNTAG_FLOW_ID   BCM_HASH_FIELD_CNTAG_FLOW_ID /* CNTAG flow ID. */

/* Enhanced hash FCOE field selection. */
#define BCM_HASH_FCOE_FIELD_DSTMOD          BCM_HASH_FIELD_DSTMOD /* Destination module ID. */
#define BCM_HASH_FCOE_FIELD_DSTPORT         BCM_HASH_FIELD_DSTPORT /* Destination port ID. */
#define BCM_HASH_FCOE_FIELD_SRCMOD          BCM_HASH_FIELD_SRCMOD /* Source modle ID. */
#define BCM_HASH_FCOE_FIELD_SRCPORT         BCM_HASH_FIELD_SRCPORT /* Souce port ID. */
#define BCM_HASH_FCOE_FIELD_VLAN            0x00000010 /* VLAN ID. */
#define BCM_HASH_FCOE_FIELD_VIRTUAL_FABRIC_ID 0x00000020 /* Virtual Fabric ID. */
#define BCM_HASH_FCOE_FIELD_RESPONDER_EXCHANGE_ID 0x00000040 /* Responder Exchange_ID. */
#define BCM_HASH_FCOE_FIELD_ORIGINATOR_EXCHANGE_ID 0x00000080 /* Originator
                                                          Exchange_ID. */
#define BCM_HASH_FCOE_FIELD_DST_ID_LO       0x00000100 /* Destination_ID lower
                                                          16 bits. */
#define BCM_HASH_FCOE_FIELD_DST_ID_HI       0x00000200 /* Destination_ID upper
                                                          16 bits. */
#define BCM_HASH_FCOE_FIELD_SRC_ID_LO       0x00000400 /* Source_ID lower 16
                                                          bits. */
#define BCM_HASH_FCOE_FIELD_SRC_ID_HI       0x00000800 /* Source_ID upper 16
                                                          bits. */
#define BCM_HASH_FCOE_FIELD_CNTAG_FLOW_ID   BCM_HASH_FIELD_CNTAG_FLOW_ID /* CNTAG flow ID. */

/* Enhanced hash Trill field selection. */
#define BCM_HASH_TRILL_FIELD_DSTMOD         BCM_HASH_FIELD_DSTMOD /* Destination module ID. */
#define BCM_HASH_TRILL_FIELD_DSTPORT        BCM_HASH_FIELD_DSTPORT /* Destination port ID. */
#define BCM_HASH_TRILL_FIELD_SRCMOD         BCM_HASH_FIELD_SRCMOD /* Source modle ID. */
#define BCM_HASH_TRILL_FIELD_SRCPORT        BCM_HASH_FIELD_SRCPORT /* Souce port ID. */
#define BCM_HASH_TRILL_FIELD_VLAN           0x00000010 /* VLAN ID. */
#define BCM_HASH_TRILL_FIELD_ETHER_TYPE     0x00000020 /* Ether type. */
#define BCM_HASH_TRILL_FIELD_MACDA_LO       0x00000040 /* MAC destination
                                                          address lower 16 bits. */
#define BCM_HASH_TRILL_FIELD_MACDA_MI       0x00000080 /* MAC destination
                                                          address middle 16
                                                          bits. */
#define BCM_HASH_TRILL_FIELD_MACSA_LO       0x00000100 /* MAC source address
                                                          lower 16 bits. */
#define BCM_HASH_TRILL_FIELD_MACSA_MI       0x00000200 /* MAC source address
                                                          middle 16 bits. */
#define BCM_HASH_TRILL_FIELD_ING_RBRIDGE_NAME 0x00000400 /* Ingress RBridge
                                                          Nickname. */
#define BCM_HASH_TRILL_FIELD_EGR_RBRIDGE_NAME 0x00000800 /* Egress RBridge
                                                          Nickname. */

/* Stacking mode select. */
#define BCM_MIRROR_STACK_MODE_XGS3  0          /* Stacking with BCM5650x
                                                  (BCM5610x, BCM5630x). */
#define BCM_MIRROR_STACK_MODE_XGS1  1          /* Stacking with BCM5670. */
#define BCM_MIRROR_STACK_MODE_XGS2  2          /* Stacking with BCM5675-A0. */

#define BCM_COLOR_PRIORITY      0          /* Priority->COLOR mapping. */
#define BCM_COLOR_OUTER_CFI     1          /* SPVLAN CFI->COLOR mapping. */
#define BCM_COLOR_INNER_CFI     2          /* CVLAN CFI->COLOR mapping. */

/* IGM/MLD Action select. */
#define BCM_SWITCH_FORWARD      0x00000001 
#define BCM_SWITCH_FLOOD        0x00000002 
#define BCM_SWITCH_DROP         0x00000004 
#define BCM_SWITCH_CPU          0x00000008 

/* Switch features bypass mode */
#define BCM_SWITCH_BYPASS_NONE      0          /* No switch logic bypassed. */
#define BCM_SWITCH_BYPASS_L3_ONLY   1          /* L3 switch logic bypassed. */
#define BCM_SWITCH_BYPASS_L3_AND_FP 2          /* L3 and FP switch logic
                                                  bypassed. */

/* Switch Remote CPU packet encapsulation priority mapping options. */
#define BCM_SWITCH_REMOTE_CPU_ENCAP_IEEE    0x00000001 /* Use 802.1P Priority
                                                          mapping for Remote CPU
                                                          packet encapsulation. */
#define BCM_SWITCH_REMOTE_CPU_ENCAP_HIGIG2  0x00000002 /* Use module header
                                                          traffic class mapping
                                                          for Remote CPU packet
                                                          encapsulation. */

/* Switch features filter bypass control modes */
#define BCM_FILTER_NONE             _SHR_SWITCH_FILTER_NONE /* No switch filter bypass. */
#define BCM_FILTER_RX_CRCCHK        _SHR_SWITCH_FILTER_RX_CRCCHK /* RX filter bypass CRC check. */
#define BCM_FILTER_DOS_TOCPU        _SHR_SWITCH_FILTER_DOS_TOCPU /* DOS filter bypass at the frame
                                                  to CPU. */
#define BCM_FILTER_STP_USERADDR     _SHR_SWITCH_FILTER_STP_USERADDR /* STP filter bypass L2 User
                                                  address. */
#define BCM_FILTER_STP_MAC0X        _SHR_SWITCH_FILTER_STP_MAC0X /* STP filter bypass the frame at
                                                  MAC=0180c2-00000x. */
#define BCM_FILTER_VLAN_IGMP_MLD    _SHR_SWITCH_FILTER_VLAN_IGMP_MLD /* VLAN filter bypass IGMP and
                                                  MLD. */
#define BCM_FILTER_VLAN_ARP_DHCP    _SHR_SWITCH_FILTER_VLAN_ARP_DHCP /* VLAN filter bypass ARP and
                                                  DHCP */
#define BCM_FILTER_VLAN_MIIM        _SHR_SWITCH_FILTER_VLAN_MIIM /* VLAN filter bypass IMP ingress
                                                  frame. */
#define BCM_FILTER_VLAN_MCAST       _SHR_SWITCH_FILTER_VLAN_MCAST /* VLAN filter bypass MCAST
                                                  frame. */
#define BCM_FILTER_VLAN_RSV_MCAST   _SHR_SWITCH_FILTER_VLAN_RSV_MCAST /* VLAN filter bypass Reserved
                                                  MCAST frame. */
#define BCM_FILTER_VLAN_USERADDR    _SHR_SWITCH_FILTER_VLAN_USERADDR /* VLAN filter bypass L2 User
                                                  address. */
#define BCM_FILTER_EAP_USERADDR     _SHR_SWITCH_FILTER_EAP_USERADDR /* EAP filter bypass L2 User
                                                  address. */
#define BCM_FILTER_EAP_DHCP         _SHR_SWITCH_FILTER_EAP_DHCP /* EAP filter bypass DHCP. */
#define BCM_FILTER_EAP_ARP          _SHR_SWITCH_FILTER_EAP_ARP /* EAP filter bypass EAP and ARP. */
#define BCM_FILTER_EAP_MAC_22_2F    _SHR_SWITCH_FILTER_EAP_MAC_22_2F /* EAP filter bypass the frame at
                                                  MAC=0180c2-000021 to
                                                  0180c2-00002F. */
#define BCM_FILTER_EAP_MAC_21       _SHR_SWITCH_FILTER_EAP_MAC_21 /* EAP filter bypass the frame at
                                                  MAC=0180c2-000021. */
#define BCM_FILTER_EAP_MAC_20       _SHR_SWITCH_FILTER_EAP_MAC_20 /* EAP filter bypass the frame at
                                                  MAC=0180c2-000020. */
#define BCM_FILTER_EAP_MAC_11_1F    _SHR_SWITCH_FILTER_EAP_MAC_11_1F /* EAP filter bypass the frame at
                                                  MAC=0180c2-000011 to
                                                  0180c2-00001F. */
#define BCM_FILTER_EAP_MAC_10       _SHR_SWITCH_FILTER_EAP_MAC_10 /* EAP filter bypass the frame at
                                                  MAC=0180c2-000010. */
#define BCM_FILTER_EAP_MAC_0X       _SHR_SWITCH_FILTER_EAP_MAC_0X /* EAP filter bypass the frame at
                                                  MAC=0180c2-00000x. */
#define BCM_FILTER_EAP_BPDU         _SHR_SWITCH_FILTER_EAP_BPDU /* EAP filter bypass BPDU frame. */
#define BCM_FILTER_CONTROL_COUNT    _SHR_SWITCH_FILTER_CONTROL_COUNT /* The count of filter bypass
                                                  control items. */

/* LED functions group */
#define BCM_LED_FUNCGRP_0       _SHR_SWITCH_LED_FUNCGRP_0 
#define BCM_LED_FUNCGRP_1       _SHR_SWITCH_LED_FUNCGRP_1 

/* LED function items */
#define BCM_LED_FUNC_NONE           _SHR_SWITCH_LED_FUNC_NONE 
#define BCM_LED_FUNC_PHYLED4        _SHR_SWITCH_LED_FUNC_PHYLED4 
#define BCM_LED_FUNC_LNK            _SHR_SWITCH_LED_FUNC_LNK 
#define BCM_LED_FUNC_DPX            _SHR_SWITCH_LED_FUNC_DPX 
#define BCM_LED_FUNC_ACT            _SHR_SWITCH_LED_FUNC_ACT 
#define BCM_LED_FUNC_COL            _SHR_SWITCH_LED_FUNC_COL 
#define BCM_LED_FUNC_LINK_ACT       _SHR_SWITCH_LED_FUNC_LINK_ACT 
#define BCM_LED_FUNC_DPX_COL        _SHR_SWITCH_LED_FUNC_DPX_COL 
#define BCM_LED_FUNC_SP_10          _SHR_SWITCH_LED_FUNC_SP_10 
#define BCM_LED_FUNC_SP_100         _SHR_SWITCH_LED_FUNC_SP_100 
#define BCM_LED_FUNC_SP_1G          _SHR_SWITCH_LED_FUNC_SP_1G 
#define BCM_LED_FUNC_10_ACT         _SHR_SWITCH_LED_FUNC_10_ACT 
#define BCM_LED_FUNC_100_ACT        _SHR_SWITCH_FILTER_EAP_DHCP 
#define BCM_LED_FUNC_10_100_ACT     _SHR_SWITCH_LED_FUNC_10_100_ACT 
#define BCM_LED_FUNC_1G_ACT         _SHR_SWITCH_LED_FUNC_1G_ACT 
#define BCM_LED_FUNC_EAV_LINK       _SHR_SWITCH_LED_FUNC_EAV_LINK 
#define BCM_LED_FUNC_PHYLED3        _SHR_SWITCH_LED_FUNC_PHYLED3 
#define BCM_LED_FUNC_SP_100_200     _SHR_SWITCH_LED_FUNC_SP_100_200 
#define BCM_LED_FUNC_100_200_ACT    _SHR_SWITCH_LED_FUNC_100_200_ACT 
#define BCM_LED_FUNC_SP_LNK_ACT_SP  _SHR_SWITCH_LED_FUNC_LNK_ACT_SP 

/* LED working mode */
#define BCM_LED_MODE_OFF        _SHR_SWITCH_LED_MODE_OFF 
#define BCM_LED_MODE_ON         _SHR_SWITCH_LED_MODE_ON 
#define BCM_LED_MODE_BLINK      _SHR_SWITCH_LED_MODE_BLINK 
#define BCM_LED_MODE_AUTO       _SHR_SWITCH_LED_MODE_AUTO 

#endif /* __BCM_SWITCH_H__ */
